【问题标题】:Set x-axis intervals(ticks) for graph of Pandas DataFrame为 Pandas DataFrame 的图形设置 x 轴间隔(刻度)
【发布时间】:2015-02-13 23:35:07
【问题描述】:

我正在尝试在我的 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 轴的刻度/间隔/时间步长?

【问题讨论】:

  • 你试过df.plot(x='Column_you_want_as_x', y='Column_you_want_as_y', xticks=d['Column_you_want_as_x'])吗?
  • 我没有尝试同时将所有 3 个作为参数传递,但不幸的是这也不起作用。不过感谢您的建议。
  • 它对我有用,但我不知道我的数据设置是否不同,因为您不提供示例数据。您能否提供自包含的示例代码和示例数据来说明问题?
  • 我的建议对我有用。看我的回答。

标签: python matplotlib pandas data-analysis


【解决方案1】:

这对我有用:

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

【讨论】:

  • 忽略之前的评论。我不得不使用 data_df[header_names[1:2]].plot(...) 来达到预期的效果。非常感谢您的帮助!
  • 我只是在向DataFrame添加另一列后尝试过,它仍然有效。请注意,我将 x 和 y 参数都传递给 plot 以告诉它要绘制哪些列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-29
  • 1970-01-01
  • 2017-09-24
  • 1970-01-01
  • 2017-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多