Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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 对数轴的matplotlib条形图_Python_Matplotlib_Plot_Axes - Fatal编程技术网

Python 对数轴的matplotlib条形图

Python 对数轴的matplotlib条形图,python,matplotlib,plot,axes,Python,Matplotlib,Plot,Axes,我试着做一个对数轴的条形图。不幸的是,如果我将y轴设置为对数,则不再有条。我能做些什么来实现这一点?是否可以在条形函数中设置参考点(默认值似乎为零) 我的代码是: import matplotlib.pyplot as plt import numpy as np N=1000 sample=np.random.random_integers(1,10,N) hist,bins=np.histogram(sample) fig,ax=plt.subplots(figsize=(12,5)

我试着做一个对数轴的条形图。不幸的是,如果我将y轴设置为对数,则不再有条。我能做些什么来实现这一点?是否可以在条形函数中设置参考点(默认值似乎为零)

我的代码是:

import matplotlib.pyplot as plt
import numpy as np


N=1000
sample=np.random.random_integers(1,10,N)
hist,bins=np.histogram(sample)


fig,ax=plt.subplots(figsize=(12,5),nrows=1,ncols=2,sharex=True,sharey=False)
ax[1].set_yscale("log")
ax[0].bar(bins[:-1],1.*hist/N,np.diff(bins))
ax[1].bar(bins[:-1],1.*hist/N,np.diff(bins))

plt.show()
输出:


如何制作右侧面板中的条形图?

尝试更新maptlotlib。对我来说,1.4.2版适用


如果您有matplotlib的1.3.1版,以下解决了我的问题:

ax[1].bar(bins[:-1],1.*hist/N,np.diff(bins),log=True)

隐马尔可夫模型。。我有matplotlib的1.3.1版。实际上,我通过ssh连接在服务器上使用python。恐怕我没有更新的权限。请使用
virtualenv
pip安装--user
.thx!但最终还是奏效了:
ax[1].bar(bin[:-1],1.*hist/N,np.diff(bin),log=True)
@Andy我很高兴你把问题解决了!请将该评论作为将来可能遇到相同问题的人的答案发布。您可能希望添加一些解释,以帮助人们理解为什么这是最好的解决方案,或者它是如何工作的,等等,而不是停留在一行代码上。