Python数据可视化之12种常用图表的绘制(三)——四种组合图表的绘制(附代码和效果图)


通过前两篇博文我们已经学会了折线图/柱形图/条形图/散点图/气泡图/面积图的绘制
以及树地图&雷达图&箱型图&饼图&圆环图&热力图
可以看看这两篇博文
Python数据可视化之12种常用图表的绘制(一)——折线图/柱形图/条形图/散点图/气泡图/面积图
Python数据可视化之12种常用图表的绘制(二)——树地图&雷达图&箱型图&饼图&圆环图&热力图(附代码和效果图)
现在我们来学习四种组合图表的绘制

折线图+折线图

废话不多说
直接上代码

import numpy as np
import matplotlib.pyplot as plt
plt.subplot(1,1,1)
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,3060,802,1906,2214,2315])
plt.rcParams['font.sans-serif']=['KaiTi']
plt.rcParams['axes.unicode_minus']=False
plt.plot(x,y1,color="k",linestyle="dashdot",
         linewidth=1,marker="o",markersize=3,label="用户注册量")
plt.plot(x,y2,color="k",linestyle="dashdot",
         linewidth=1,marker="o",markersize=3,label="激活注册量")
plt.title("python爱好者社区公众号1-9月注册用户量",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)
plt.xlabel("月份")
plt.ylabel("注册量")
plt.xticks(np.arange(9), ["一月份", "二月份", "三月份",
                          "四月份", "五月份", "六月份", "七月份", "八月份", "九月份"])
plt.yticks(np.arange(1000, 7000, 1000),
           ["1000人", "2000人", "3000人", "4000人", "5000人", "6000人"])
plt.grid(True)
plt.legend()
plt.savefig(r"C:\Users\xiaoLiu\Desktop\keshihua\13.jpg")
plt.show()

效果图
在这里插入图片描述
怎么样,还行吧~

折线图+柱形图

代码撸起来

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

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, 3060, 802, 1906, 2214, 2315])
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False
fig = plt.figure()
plt.figure(figsize=(8, 6))
plt.xlim(0, 10)
plt.ylim(0, 10000)
plt.xticks(np.arange(9), ["一月份", "二月份", "三月份", "四月份", "五月份", "六月份", "七月份", "八月份", "九月份"])
plt.yticks(np.arange(1000, 7000, 1000), ["1000人", "2000人", "3000人", "4000人", "5000人", "6000人"])
plt.xlabel("月份", labelpad=10, fontsize='xx-large', color='#70AD47', fontweight='bold')
plt.ylabel("注册人数", labelpad=10, fontsize='xx-large', color='#70AD47', fontweight='bold')
plt.grid(b=True, linestyle="dashed", linewidth=1)
plt.title(label="1-9月python爱好者社区注册与激活用户数",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)
plt.plot(x, y1, color="k",linestyle="solid",linewidth=1,
         marker="o",markersize=3,label='折线图')
plt.bar(x, y2,color="k", label='柱形图')
plt.legend(loc="upper left")
plt.legend(ncol=2)
plt.annotate("服务器宕机了", xy=(6, 1605), xytext=(7, 1605), arrowprops=dict(facecolor='black', arrowstyle='->'))
plt.show()

效果展示
在这里插入图片描述
挺好看的吧~

绘制双y轴图表

import numpy as np
import matplotlib.pyplot as plt
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.54459448, 0.32392354, 0.39002751,
               0.41121879, 0.32063077, 0.33152276,
               0.92226226, 0.02950071, 0.15716906])
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False
fig = plt.figure()
plt.figure(figsize=(8, 6))
plt.plot(x, y1, color="k",linestyle="solid",linewidth=1,
         marker="o",markersize=3,label='注册人数')
plt.xlabel("月份", labelpad=10, fontsize='xx-large', color='#70AD47', fontweight='bold')
plt.ylabel("注册人数", labelpad=10, fontsize='xx-large', color='#70AD47', fontweight='bold')
plt.grid(b=True, linestyle="dashed", linewidth=1)
plt.legend(loc="upper left")
plt.twinx()
plt.plot(x, y2, color="k",linestyle="dashdot",linewidth=1,
         marker="o",markersize=3,label='激活人数')
plt.xlabel("月份", labelpad=10, fontsize='xx-large', color='#70AD47', fontweight='bold')
plt.ylabel("激活人数", labelpad=10, fontsize='xx-large', color='#70AD47', fontweight='bold')
plt.grid(b=True, linestyle="dashed", linewidth=1)
plt.legend()
plt.title(label="1-9月python爱好者社区注册与激活用户数",loc="center")
plt.savefig(r"C:\Users\xiaoLiu\Desktop\keshihua\14.jpg")
plt.show()

效果图如下
在这里插入图片描述怎么样,好看吧~
好啦,本篇就学到这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值