python如何使⽤matplotlib画出上下不同的坐标轴
现在接到⼀个任务,需要画⼀个时序信号,底部坐标轴标时间,另外,图中要在特定时刻画出竖线,并在顶部坐标轴上对应位置标标签.
⾸先要解决上下坐标轴不同的问题.
⽐如说我们先⽣成⼀组数据data
import numpy as np
import matplotlib.pyplot as plt
plt.switch_backend('agg')
data = np.random.randn(10)
然后要画图
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(data)
以上内容想必⼤家都很熟悉了.这时的图⽚是这样的
这时,要对底部坐标轴做各种操作⼤家应该也很熟悉.⽽如果要对顶部坐标轴做操作,需要先建⽴顶部坐标轴的对象
ax_top = ax.twiny()
⾄于为什么是twiny⽽不是twinx我也没搞清楚.总之,twiny是顶部坐标轴,⽽twinx是右部坐标轴.虽然看上去有点奇怪,但实际就是这样,⽤就好了.
好,现在我要在横轴坐标6的地⽅画⼀条竖线
ax.axvline(6, linestyle='--', color='red') # 红⾊虚线
想要在顶部横坐标为6的位置标上'key',⾸先需要把底部和顶部横坐标对应起来,也就是底部横坐标的刻度与顶部横坐标的刻度设置⼀致.
xticks = ax.get_xticks()
ax.set_xticks(xticks)
xlim = ax.get_xlim()
ax_top.set_xlim(xlim)
这⾥需要对底部坐标轴重新设置xticks是因为如果不设置的话,底部坐标轴和顶部坐标轴的坐标位置会有些许的偏差.
然后在对应位置添加'key'
top_tick = [6]
top_label = ['key'] # 这两⾏分别是要显⽰坐标的位置以及置换的标签ax_top.set_xticks(top_tick)
ax_top.set_xticklabels(top_label)
matplotlib中subplot现在看看效果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论