我想使用数据框进行绘制,但是有时候,我希望对我的x-tick标签进行更多控制,并且看起来数据框索引正在“覆盖”我的代码。这是代码:
test_df = pd.DataFrame({'cycles':[0,'b',3,'d','e','f','g'],'me':[100,80,99,100,75,100,90], 'you':[100,80,99,100,75,100,90], 'us':[100,80,99,100,75,100,90]})
f, ax = plt.subplots()
x = test_df['me']
x.index = ['a','b','c','d','e','f','g']
print(x)
for a in ax.get_xticklabels():
a.set_text('me')
print(ax.get_xticklabels()[0])
ax.plot(x)
test_df.plot(x = 'cycles', y = 'me')
有什么简单的方法可以轻松地轻松修改数据框的x-tick标签而不更改数据框的索引,是否容易在运行中轻松地使x-ticks成为我想要的任何数据框列呢?
答案 0 :(得分:1)
您可以在xticks
中指定DataFrame.plot
。基本上,这只是为了确保刻度标签数量正确的假人。
然后只需在绘图后手动设置刻度标签即可。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'cycles':[0,'b',3,'d','e','f','g'],
'me':[100,80,99,100,75,100,90]})
fig, ax = plt.subplots()
test_df.plot(x='cycles', y='me', ax=ax, xticks=test_df.index)
_ = ax.set_xticklabels(test_df['cycles'])
plt.show()
但是您应该对如何自动生成xticks有所犹豫。当您的值是序数时,折线图才有意义。在我看来,0
应该不与'b'
连接,而'e'
应该不与'f'
连接。在这种情况下,条形图是有意义的,并且毫不奇怪的是,生成的xticks没有问题。
test_df.plot(x='cycles', y='me', kind='bar', legend=False)