Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pandas.DataFrame.plot(种类=“条形图”)的更多打印选项_Python_Matplotlib_Plot_Pandas - Fatal编程技术网

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轴上的记号是否正确地对数;小刻度不应该是对数间隔的,而不是在大刻度(标记)之间均匀间隔的吗?在我们知道它们的意思之前,很难说这些条画得是否正确。我知道当从线性到“对数”时,这些条根本不会改变。这意味着这里出了问题。