Python 在matplotlib中绘制多个y轴和颜色条
我试图制作一个散点图,它有两个不同的y轴和一个色条 下面是使用的伪代码:Python 在matplotlib中绘制多个y轴和颜色条,python,matplotlib,scatter,colorbar,Python,Matplotlib,Scatter,Colorbar,我试图制作一个散点图,它有两个不同的y轴和一个色条 下面是使用的伪代码: #/usr/bin/python 将matplotlib.pyplot作为plt导入 从matplotlib导入cm 图=plt.图() ax1=图add_子批次(111) plt.散射(xgrid, 伊格里德, c=be,#将色条设置为闪耀效率 cmap=厘米热, vmin=0.0, vmax=1.0) cbar=plt.colorbar() cbar.set_标签(“燃烧效率”) ax2=ax1.twinx() ax2
#/usr/bin/python
将matplotlib.pyplot作为plt导入
从matplotlib导入cm
图=plt.图()
ax1=图add_子批次(111)
plt.散射(xgrid,
伊格里德,
c=be,#将色条设置为闪耀效率
cmap=厘米热,
vmin=0.0,
vmax=1.0)
cbar=plt.colorbar()
cbar.set_标签(“燃烧效率”)
ax2=ax1.twinx()
ax2.set_ylabel('波长')
plt.show()
它生成了这个图:
我的问题是,如何为“波长”轴使用不同的比例,以及如何将颜色条向右移动,使其不受波长的影响?plt.colorbar()是为非常简单的情况而设计的,例如,对于具有两个y轴的绘图,实际上没有考虑到。
对于颜色条位置和属性的细粒度控制,您几乎应该始终使用颜色条来指定要在哪些轴上打印颜色条
# on the figure total in precent l b w , height
cbaxes = fig.add_axes([0.1, 0.1, 0.8, 0.05]) # setup colorbar axes.
# put the colorbar on new axes
cbar = fig.colorbar(mapable,cax=cbaxes,orientation='horizontal')
请注意,colorbar采用以下关键字:
关键字参数:
卡克斯
无|将绘制颜色条的轴对象
无|父轴对象,新轴从该对象的空间开始
色条轴将被盗
你也可以在这里看到我关于的更详细的回答。@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()