python – 在matplotlib中绘制多个y轴和颜色条

我正在尝试生成一个散点图,它有两个不同的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()

它产生了这个情节:
plot http://i48.tinypic.com/2zix7x1.png

我的问题是,你如何使用不同比例的“波长”轴,以及如何将颜色条更多地向右移动,使其不是波长的方式?

最佳答案 @ 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()

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

点赞