python matplotlib一张图中绘制不同类型叠加图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python matplotlib一张图中绘制不同类型叠加图相关的知识,希望对你有一定的参考价值。

from matplotlib.pyplot import *

# 直接从本地字库加载字体
myfont = matplotlib.font_manager.FontProperties(
        fname='/Users/congyh/Downloads/方正书宋简体.ttf')
# 保证负号的正常显示
rcParams['axes.unicode_minus'] = False

node_num = [1, 2, 3, 4]
acc_rate = [1, 1.92, 2.46, 2.75]
train_time = [430, 224, 175, 156]

####### 绘制柱形图 #############

ax = subplot()
# 设置坐标轴刻度值是几的倍数
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.yaxis.set_major_locator(MultipleLocator(50))
ax.set_xlabel(u'节点数', fontproperties=myfont) # 对于中文输入, 必须在输入前加u
ax.set_ylabel('time(s)')
bar(node_num, train_time, width=0.3)

# 在图中添加数据标签
for a,b in zip(node_num,train_time):
    text(a, b+0.05, b, ha='center', va= 'bottom',fontsize=8)
legend()

####### 绘制折线图 ############

# 绘制叠加图的时候, 需要启用对称的坐标轴
ax2 = twinx()
# 设置y轴刻度是谁的倍数
ax2.yaxis.set_major_locator(MultipleLocator(.5))
ax2.set_ylabel('accelaration')
ax2.plot(node_num, acc_rate, color='Y', label='accelaration')

for a,b in zip(node_num, acc_rate):
    text(a, b+0.05, b, ha='center', va= 'bottom',fontsize=8)

fig = gcf()
# 指定图片的dpi为600
fig.savefig('acc_rate.png', dpi=600)

以上是关于python matplotlib一张图中绘制不同类型叠加图的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 在一张图中绘制多个条形图

如何在 matplotlib pandas 的一张图中组合两个文件的两个条形图

Matplotlib 绘制直方图、散点图

在 matplotlib 图中绘制平滑曲线

使用 python 中的 windrose 模块绘制带有风玫瑰的不同子图。在 matplotlib 中使用睡眠

Python Matplotlib 在条形图中绘制样本均值,具有置信区间,但看起来像箱形图