我想做类似于http://matplotlib.org/examples/pylab_examples/hist2d_log_demo.html的事情,但我已经读过,除了在python交互模式下使用pylab进行代码之外,这是不好的做法,因此我想使用matplotlib.pyplot做到这一点。但是,我不知道如何使用pyplot使此代码正常工作。使用pylab,给出的示例是
from matplotlib.colors import LogNorm
from pylab import *
#normal distribution center at x=0 and y=5
x = randn(100000)
y = randn(100000)+5
hist2d(x, y, bins=40, norm=LogNorm())
colorbar()
show()
我已经尝试了很多
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
h1 = ax1.hist2d([1,2],[3,4])
从这里开始,我尝试了
plt.colorbar(h1)
plt.colorbar(ax1)
plt.colorbar(fig)
ax.colorbar()
等的所有操作,但我什么都无法工作。总的来说,即使阅读了http://matplotlib.org/faq/usage_faq.html,我实际上也不十分清楚pylab和pyplot之间的关系。例如pylab中的
show()
似乎已成为pyplot中的plt.show()
,但是由于某种原因colorbar
不会成为plt.colorbar()
吗?例如,
最佳答案
颜色条需要一个ScalarMappable对象作为其第一个参数。 plt.hist2d
将其作为返回的元组的第四个元素返回。
h = hist2d(x, y, bins=40, norm=LogNorm())
colorbar(h[3])
完整的代码:
from matplotlib.colors import LogNorm
import matplotlib.pyplot as plt
import numpy as np
#normal distribution center at x=0 and y=5
x = np.random.randn(100000)
y = np.random.randn(100000)+5
h = plt.hist2d(x, y, bins=40, norm=LogNorm())
plt.colorbar(h[3])
show()
关于python - 如何在matplotlib.pyplot中将hist2d与colorbar一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24523670/