暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python专栏:python画图02-三纵坐轴

算法笔记 2020-06-11
813

1 导入需要的库

from mpl_toolkits.axisartist.parasite_axes import HostAxes, ParasiteAxes
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
# 设置中文显示
font = {'family':'Microsoft YaHei''weight':'bold''size':12}
plt.rcParams['font.sans-serif'] = 'Microsoft YaHei'
plt.rcParams['axes.unicode_minus'] = False
matplotlib.rc('font', **font)

2 构造数据

x = np.arange(1,750,20)
y1 = np.sin(2*np.pi/365*x)*27
y2 = np.sin(2*np.pi/365*x)*50+100
y3 = abs(np.sin(2*np.pi/(365*2)*x)*100)

3 画图显示数据

fig = plt.figure(figsize=(103))
ax = fig.add_subplot(1,3,1)
ax.plot(x,y1,'r-',linewidth=2,label='y1-中文')
ax.legend(loc="upper right")

ax = fig.add_subplot(1,3,2)
ax.plot(x,y2,'g-',linewidth=2,label='y2-中文')
ax.legend(loc="upper right")

ax = fig.add_subplot(1,3,3)
ax.bar(x,y3,width=10,color='b',label='y3-中文')
ax.legend(loc="upper right")


4 三纵坐轴显示数据

fig = plt.figure(figsize=(106)) 
ax = HostAxes(fig, [0.10.10.70.7])  #用[left, bottom, weight, height]的方式定义axes, 0 <= l,b,w,h <= 1
kw = dict(linewidth = 2,markerfacecolor='none',markersize = 4)

#parasite addtional axes, share x
ax02 = ParasiteAxes(ax, sharex=ax)
ax03 = ParasiteAxes(ax, sharex=ax)

#append axes
ax.parasites.append(ax02)
ax.parasites.append(ax03)

ax03_axisline = ax02.get_grid_helper().new_fixed_axis
ax03.axis['right4'] = ax03_axisline(loc='right', axes=ax03, offset=(60,0))


fig.add_axes(ax)
h1, = ax.plot(x, y1, linewidth=2,color='r',label="y1-中文")
h2, = ax02.plot(x, y2, linewidth=2,color='g',label="y2-中文")
h3 = ax03.bar(x,y3,width=5,color='b',label='y3-中文')

#invisible right axis of ax
ax.axis['right'].set_visible(False)
ax.axis['top'].set_visible(True)
ax02.axis['right'].set_visible(True)
ax02.axis['right'].major_ticklabels.set_visible(True)
ax02.axis['right'].label.set_visible(True)

#set label for axis
ax.set_ylabel('y1-中文')
ax.set_xlabel('xxx')
ax02.set_ylabel('y2-中文')
ax03.set_ylabel('y3-中文')

#set xlim for yaxis
ax.set_ylim(-150,150)
ax02.set_ylim(0,150)
ax03.set_ylim(0,500)

ax.legend()

#name axies, xticks colors
ax.axis['left'].label.set_color('r')
ax02.axis['right'].label.set_color('g')
ax03.axis['right4'].label.set_color('b')

ax.axis['left'].major_ticks.set_color('r')
ax02.axis['right'].major_ticks.set_color('g')
ax03.axis['right4'].major_ticks.set_color('b')

ax.axis['left'].major_ticklabels.set_color('r')
ax02.axis['right'].major_ticklabels.set_color('g')
ax03.axis['right4'].major_ticklabels.set_color('b')

ax.axis['left'].line.set_color('r')
ax02.axis['right'].line.set_color('g')
ax03.axis['right4'].line.set_color('b')




end

最后如果你觉得不错,"关注+转发+右下角"

文章转载自算法笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论