如果一侧没有绘制数据,则轴断裂? (接近零)

时间:2017-07-20 20:04:15

标签: python matplotlib plot

问题

我有一个带有几个变量的线图,其中数据值远远高于零。该图还具有两个分别对应于实线和虚线的y轴。我已经注意到y轴标签中的数据值,但是我的导师认为我还应该在零上方添加一个轴断点,以引起人们注意这些值远远高于零的事实,并表示,例如,实心CTRL不是固体MFKC的两倍。

我用matplotlib查找了轴断裂的例子,但是我看到的所有这些都涉及跨越图的两个边的数据,两个轴用于两个轴。我没有任何我希望在休息区下方绘制的数据,并且在已经有两个的情节中添加更多的轴可能是不必要的复杂。

代码

#Plot
x= np.arange(0,3)
fig,ax = plt.subplots(figsize=(6,6))

#DOD
dod1 = ax.plot(x, ctrl_dod,  color='r',      label='CTRL'  )
dod2 = ax.plot(x, mfkc_dod,  color='orange', label='MFKC'  )
dod3 = ax.plot(x, gses_dod,  color='green',  label='GSES'  )
dod4 = ax.plot(x, gses3_dod, color='blue',   label='GSES-3')
dod5 = ax.plot(x, gses4_dod, color='purple', label='GSES-4')
ax.yaxis.grid(True, linestyle='-')
ax.xaxis.grid(True)
ax.set_xlabel('Month')
ax.set_ylabel('Dust Optical Depth')
ax.legend()
ax.set_title('Global Mean DOD and DCM')

#DCM
ax2  = ax.twinx()
dcm1 = ax2.plot(x, ctrl_dcm*1e6,  color='r',       linestyle='--')
dcm2 = ax2.plot(x, mfkc_dcm*1e6,  color='#e68a00', linestyle='--')
dcm3 = ax2.plot(x, gses_dcm*1e6,  color='green',   linestyle='--')
dcm4 = ax2.plot(x, gses3_dcm*1e6, color='blue',    linestyle='--')
dcm5 = ax2.plot(x, gses4_dcm*1e6, color='purple',  linestyle='--')
ax2.yaxis.grid(True)
ax2.xaxis.grid(True)
ax2.set_xlabel('Month')
ax2.set_ylabel('Dust Column Mass (mg m-2)')
#Limits
axes = plt.gca()
axes.set_xlim([-0.25,2.25])

#Labels
axes.set_xticks(x)
axes.set_xticklabels(['June','July','August'])

#Save
pylab.savefig('dod+dcm.png')

enter image description here

问题

如果我将y轴范围更改为从0开始,那么如何在两侧(以及0.020和40以下)两侧添加换行符?

1 个答案:

答案 0 :(得分:0)

创建一个numpy数组,其值均为0.020,形状与时间数组相同。根据时间绘制该数组并打开连接点(即绘制趋势线)。您可以对40执行相同操作。然后将y下限设置为零。