Python实现可视化(一)--双Y轴画图及图例控制

Python实现可视化(一)-双Y轴画图及图例控制

python实现可视化

基于python绘制双Y轴图像

1.图例与Y轴一致

// 加载相关库
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(15, 9))

// 左侧坐标
ax1 = fig.add_subplot(111)
ax1.plot(df['ft_5min'], df['speed'], '-', color='b', label='平均速度变化')
ax1.plot(df['ft_5min'], df['density'], '-', color='r',label='平均密度变化')
ax1.set_ylabel('速度(km/h) & 密度(辆/公里车道)')
ax1.legend(loc=2)
// 右侧坐标
ax2 = ax1.twinx()
ax2.plot(df['ft_5min'], df['volume'], '-', color='orange',label='交通量变化')
ax2.set_ylabel('交通量(辆/小时/车道)')
ax2.set_xlabel('Same')
ax2.legend(loc=1)

plt.show()

结果:左侧坐标轴对应左侧图例,右侧坐标轴对应右侧图例Python实现可视化(一)--双Y轴画图及图例控制_第1张图片

2.图例放在一起

// 加载相关库
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(15, 9))
ax1 = fig.add_subplot(111)
lns1 = ax1.plot(df['ft_5min'], df['speed_repair'], '-*', color='b', label='平均速度变化')
lns2 = ax1.plot(df['ft_5min'], df['density'], '-*', color='r',label='平均密度变化')
ax1.set_ylabel('速度(km/h) & 密度(辆/公里车道)')

ax2 = ax1.twinx()
lns3 = ax2.plot(df['ft_5min'], df['volume'], '-*', color='orange', label='交通量变化')
ax2.set_ylabel('交通量(辆/小时/车道)')
ax2.set_xlabel('Same')

// 图例控制
lns = lns1 + lns2 + lns3
labs = [l.get_label() for l in lns]
ax1.legend(lns, labs, loc=0, fontsize=14)
plt.show()

结果为
Python实现可视化(一)--双Y轴画图及图例控制_第2张图片

你可能感兴趣的:(python,可视化,plot)