web-dev-qa-db-ja.com

Pandas DataFrameのグラフのx軸間隔(目盛り)を設定します

Pandas DataFrameのmatplotlibグラフでx軸の目盛り(タイムステップ)を設定しようとしています。私の目標は、DataFrameの最初の列を使用してダニですが、私は今のところ成功していません。

これまでの私の試みには次のものが含まれています。

試行1:

#See 'xticks'
data_df[header_names[1]].plot(ax=ax, title="Roehrig Shock Data", style="-o", legend=True, xticks=data_df[header_names[0]])

試行2:

ax.xaxis.set_ticks(data_df[header_names[0]])

header_namesは列ヘッダー名の単なるリストであり、データフレームは次のとおりです。

    Compression Velocity   Compression Force  
1               0.000213            6.810879             
2               0.025055          140.693200            
3               0.050146          158.401500            
4               0.075816          171.050200             
5               0.101011          178.639500              
6               0.126681          186.228800              
7               0.150925          191.288300            
8               0.176597          198.877500        
9               0.202269          203.937000        
10              0.227466          208.996500         
11              0.252663          214.056000    

そして、これがCSV形式のデータです。

Compression Velocity,Compression Force
0.0002126891606,6.810879
0.025055073079999997,140.6932
0.050145696,158.4015
0.07581600279999999,171.0502
0.1010109232,178.6395
0.12668120459999999,186.2288
0.1509253776,191.2883
0.1765969798,198.8775
0.2022691662,203.937
0.2274659662,208.9965
0.2526627408,214.056

そして、これがグラフの読み取りとプロットの実装です。

data_df = pd.read_csv(file).astype(float)
fig = Figure()
ax = fig.add_subplot(111)
ax.set_xlabel("Velocity (m/sec)")
ax.set_ylabel("Force (N)")
data_df[header_names[1]].plot(ax=ax, title="Roehrig Shock Data", style="-o", legend=True)

現在のグラフは次のようになります。

x軸は現在、最初の列内の実際の値ではなく、データフレーム内の行数(12など)です。

データフレームの最初の列のデータを使用して、x軸の目盛り/間隔/タイムステップとして設定する方法はありますか?

6
aus_lacy

これは私のために働きます:

data_df.plot(x='Compression Velocity', y='Compression Force', xticks=d['Compression Velocity'])

enter image description here

10
BrenBarn