【发布时间】:2017-06-18 12:59:49
【问题描述】:
我想用下面的相关直方图绘制一个图像和颜色条。图像和直方图的两个轴必须具有相同的宽度。 此外,颜色条应与图像的高度相同。 复杂(并且不应该)复杂的部分是将累积直方图与每个 bin 相对于数据大小的百分比叠加在一起。
目前,我得到了这样的东西:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
data = np.random.normal(0,2,size=(100,100))
fig = plt.figure()
ax = fig.add_subplot(2,1,1)
im = ax.imshow(data,cmap="bone")
divider = make_axes_locatable(ax)
ax1 = divider.append_axes("right", size="5%", pad=0.05)
plt.colorbar(im,cax=ax1)
ax2 = divider.append_axes("bottom",size="100%",pad = 0.3)
n,bins,patches = ax2.hist(data.flatten(),bins=20)
ax3 = ax2.twinx()
ax3.plot(bins[:-1],np.cumsum(n*100/np.size(data)),lw=2)
plt.show()
在我尝试在 ax2 上使用 twinx 之前,一切都很顺利(为了在 ax3 上以不同的 y 比例绘制我的累积分布)。生成的轴,而不是与 ax2 一起,是环绕图形的所有轴。
我不明白出了什么问题以及如何解决这个问题。
【问题讨论】:
标签: python matplotlib