我正在尝试生成一个散点图,它具有两个不同的 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()
它产生了这个情节:我的问题是,您如何为“波长”轴使用不同的比例,以及如何将颜色条向右移动更多,以便它不在波长的方式中?
最佳答案
@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/