我正在尝试生成一个散点图,它具有两个不同的 y 轴和一个颜色条。
下面是使用的伪代码:

#!/usr/bin/python

import matplotlib.pyplot as plt
from matplotlib import cm

fig = plt.figure()
ax1 = fig.add_subplot(111)
plt.scatter(xgrid,
        ygrid,
        c=be,                   # set colorbar to blaze efficiency
        cmap=cm.hot,
        vmin=0.0,
        vmax=1.0)

cbar = plt.colorbar()
cbar.set_label('Blaze Efficiency')

ax2 = ax1.twinx()
ax2.set_ylabel('Wavelength')

plt.show()
它产生了这个情节:
python - 在 matplotlib 中绘制多个 y 轴和颜色条-LMLPHP

我的问题是,您如何为“波长”轴使用不同的比例,以及如何将颜色条向右移动更多,以便它不在波长的方式中?

最佳答案

@OZ123 抱歉,我花了这么长时间才回复。 Matplotlib 具有可扩展的可定制性,有时会导致您对实际操作感到困惑。感谢您帮助创建单独的轴。

然而,我认为我不需要那么多控制,我最终只使用了 PAD 关键字参数

fig.colorbar()

这提供了我需要的东西。

然后伪代码变成这样:
#!/usr/bin/python

import matplotlib.pyplot as plt
from matplotlib import cm

fig = plt.figure()
ax1 = fig.add_subplot(111)
mappable = ax1.scatter(xgrid,
                       ygrid,
                       c=be,                   # set colorbar to blaze efficiency
                       cmap=cm.hot,
                       vmin=0.0,
                       vmax=1.0)

cbar = fig.colorbar(mappable, pad=0.15)
cbar.set_label('Blaze Efficiency')

ax2 = ax1.twinx()
ax2.set_ylabel('Wavelength')

plt.show()

这是显示它现在的样子::

关于python - 在 matplotlib 中绘制多个 y 轴和颜色条,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10921316/

10-12 16:02