Python pandas.DataFrame.plot(种类=“条形图”)的更多打印选项
Python pandas.DataFrame.plot(种类=“条形图”)的更多打印选项,python,matplotlib,plot,pandas,Python,Matplotlib,Plot,Pandas,pandas.DataFrame.plot(kind='bar')方法很方便,因为它可以根据数据框的行和列来绘制分组并适当着色的条。例如: timeDf.plot(kind='bar', legend=False) 产生 对于以下数据帧: 但是如果我想让情节有,例如 对数y轴 y轴和x轴的标签 该方法本身似乎没有这样的选项?对定制的支持是如此有限还是我遗漏了什么 我不太愿意在matplotlib中重建此绘图函数,因为我认为它很费劲。对于以下对象,有set\u scale和set\u x
pandas.DataFrame.plot(kind='bar')
方法很方便,因为它可以根据数据框的行和列来绘制分组并适当着色的条。例如:
timeDf.plot(kind='bar', legend=False)
产生
对于以下数据帧:
但是如果我想让情节有,例如
- 对数y轴
- y轴和x轴的标签
我不太愿意在matplotlib中重建此绘图函数,因为我认为它很费劲。对于以下对象,有
set\u scale
和set\u xticklabel
:
df=pd.DataFrame(np.random.random((6,6)))
ax=df.plot(kind='bar')
ax.yaxis.set_scale('log')
ax.set_xticklabels(['a','b','c','d','e','f'])
如果要使刻度间距均匀,应执行以下操作:
ax.set_yscale("log", nonposy='clip') #nonposy is required, otherwise the bar disappears.
ax.set_ylim((0.1, 100)) #remember to rest the limit.
由于
matplotlib
1.3,因此set\u scale
方法被弃用并替换为\u set\u scale
ax.yaxis.set\u scale(“log”)
给出了一个奇怪的结果。在我的例子中,也是在你上面的例子中。奇怪的是,到底是怎么回事?@cphlewis y轴上的记号变成对数(记号标签开始重叠),但条形图没有相应地缩放。我甚至不确定y轴上的记号是否正确地对数;小刻度不应该是对数间隔的,而不是在大刻度(标记)之间均匀间隔的吗?在我们知道它们的意思之前,很难说这些条画得是否正确。我知道当从线性到“对数”时,这些条根本不会改变。这意味着这里出了问题。