python绘制组合图表

一、折线图+折线图

import numpy as np
import matplotlib.pyplot as plt
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")

# 建立坐标系
plt.subplot(1,1,1)
# 指明x和y的值
x = np.array([1,2,3,4,5,6,7,8,9])
y1 = np.array([866,2335,5710,6482,6120,1605,3813,4428,4631])
y2 = np.array([433,1167,2855,3241,1060,802,1906,2214,3515])
# 绘图
plt.plot(x,y1,color = 'k',linestyle = 'solid',linewidth =1,marker = 'o',markersize = 3,label = '注册人数')
plt.plot(x,y2,color = 'k',linestyle = 'dashdot',linewidth =1,marker = 'o',markersize = 3,label = '激活人数')
# 设置标题
plt.title('xxxxxxxxxx',loc='center')
# 添加数据标签
for a,b in zip(x,y1):
    plt.text(a,b,b,ha='center',va='bottom',fontsize = 11)
for a,b in zip(x,y2):
    plt.text(a,b,b,ha='center',va='bottom',fontsize = 11)

# 设置x轴y轴的名称
plt.xlabel('月份')
plt.ylabel('注册量')
#设置x轴y轴的的刻度
plt.xticks(np.arange(1,10,1),['1月','2月','3月','4月','5月','6月','7月','8月','9月'])
plt.yticks(np.arange(1000,7000,1000),['1000人','2000人','3000人','4000人','5000人','6000人','7000人','8000人','9000人'])
# 设置图例
plt.legend()
# 显示图表
plt.show()

效果如下:
在这里插入图片描述

二、折线图+柱形图

import numpy as np
import matplotlib.pyplot as plt
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")

# 建立坐标系
plt.subplot(1,1,1)
# 指明x和y的值
x = np.array([1,2,3,4,5,6,7,8,9])
y1 = np.array([866,2335,5710,6482,6120,1605,3813,4428,4631])
y2 = np.array([433,1167,2855,3241,1060,802,1906,2214,3515])
# 绘图
plt.plot(x,y1,color = 'k',linestyle = 'solid',linewidth =1,marker = 'o',markersize = 3,label = '注册人数')
plt.bar(x,y2,color = 'k',label = '激活人数')
# 设置标题
plt.title('xxxxxxxxxx',loc='center')
# 添加数据标签
for a,b in zip(x,y1):
    plt.text(a,b,b,ha='center',va='bottom',fontsize = 11)
for a,b in zip(x,y2):
    plt.text(a,b,b,ha='center',va='bottom',fontsize = 11)
# 设置x轴y轴的名称
plt.xlabel('月份')
plt.ylabel('注册量')
#设置x轴y轴的的刻度
plt.xticks(np.arange(1,10,1),['1月','2月','3月','4月','5月','6月','7月','8月','9月'])
plt.yticks(np.arange(1000,7000,1000),['1000人','2000人','3000人','4000人','5000人','6000人','7000人','8000人','9000人'])
# 设置图例
plt.legend()
# 显示图表
plt.show()

效果如下:
在这里插入图片描述

三、绘制双坐标轴的图表

import numpy as np
import matplotlib.pyplot as plt
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")

# 建立坐标系
plt.subplot(1,1,1)
# 指明x和y的值
x = np.array([1,2,3,4,5,6,7,8,9])
y1 = np.array([866,2335,5710,6482,6120,1605,3813,4428,4631])
y2 = np.array([0.5,0.3,0.3,0.4,0.3,0.3,0.9,0.01,0.15])
# 绘制在主坐标轴上的图表
plt.plot(x,y1,color = 'k',linestyle = 'solid',linewidth =1,marker = 'o',markersize = 3,label = '注册人数')
# 设置主x轴y轴的名称
plt.xlabel('月份')
plt.ylabel('注册量')
# 设置图例
plt.legend(loc = 'upper left')
# 调用twin方法
plt.twinx()
# 绘制次坐标轴的图表
plt.plot(x,y2,color = 'k',linestyle = 'dashdot',linewidth =1,marker = 'o',markersize = 3,label = '激活率')
# 设置次x轴y轴的名称
plt.xlabel('月份')
plt.ylabel('注册量')
# 设置图例
plt.legend()
# 显示图表
plt.show()

效果如下:
在这里插入图片描述
以上内容仅供参考学习,如有侵权请联系我删除!

发布了69 篇原创文章 · 获赞 7 · 访问量 3343

猜你喜欢

转载自blog.csdn.net/weixin_45366499/article/details/104237202