python实现柱状图和折线图组合图(通过读取文件实现)

本文介绍了如何使用Python的pandas和matplotlib库从xlsx文件读取数据,然后创建柱状图和折线图的组合图表。通过设置中文显示、调整坐标轴和图例,展示乡镇文化站数与从业人员数的变化情况。
摘要由CSDN通过智能技术生成

前言

       相信很多初学python可视化小伙伴会有这样的疑问,怎么画柱状图和折线图的组合图呢?自己会画柱状图、折线图,但是怎么画在一起呢?其实啊,这也不难,下面给大家演示一波。

目录

前言

一、数据源(数据存放于xlsx文件中)

二、实现步鄹

1.读取数据

1.1代码

1.2打印结果(读取数据成功):

1.3提取数据

 2.由于不支持中文显示,所以需要设置中文显示乱码等问题

3.实现主体部分

4.实现完整代码

三、结果显示如图

四、小结


一、数据源(数据存放于xlsx文件中)

二、实现步鄹

1.读取数据

1.1代码

import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel('./乡镇文化站数与从业人数.xlsx', header=0, index_col=0)
print(data)

1.2打印结果(读取数据成功):

 

1.3提取数据

# 提取数据
x = data['年份']
y1 = data['乡镇文化站数']
y2 = data['乡镇文化站从业人员数']

 2.由于不支持中文显示,所以需要设置中文显示乱码等问题

# 设置正常显示中文标签
plt.rcParams['font.sans-serif'] = ['SimHei']
# 正常显示负号
plt.rcParams['axes.unicode_minus'] = False
# 设置字体大小
plt.rcParams.update({'font.size': 16})

3.实现主体部分


def plot_combination():
    plt.figure(figsize=(16, 8))
    plt.subplot(111)

    # 柱形宽度
    bar_width = 0.35

    # 在主坐标轴绘制柱形图
    plt.bar(x, y1, bar_width,color='r', label='乡镇文化站数')
    plt.ylim(31500,35000)


    # 设置图例
    plt.legend(loc='upper left')
    plt.ylabel("单位:站",fontsize=20, loc="center")

    # 设置横坐标的标签
    plt.xticks(x)
    #plt.set_xticklabels(sale.index)
    plt.xlabel("年份",fontsize=20, loc="center")

    # 在次坐标轴上绘制折线图
    plt.twinx()
    plt.plot(x, y2, ls='--', lw=2, color='c', marker='v',ms = 10, mfc = 'k', label='站从业人员数')

    # 设置次坐标轴的取值范围,避免折线图波动过大
    plt.ylim(0,120000)

    # 设置图例
    plt.legend(loc='upper right')
    # 设置标题
    plt.title('\n乡镇文化站数与站从业人员数的情况\n', fontsize=26, loc='center', color='k')
    plt.ylabel("单位:人",fontsize=20, loc="center")

    plt.savefig('./figure1.jpg', bbox_inches='tight')

    plt.show()

if __name__ == '__main__':

    plot_combination()

4.实现完整代码

#导入库
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_excel('./乡镇文化站数与从业人数.xlsx', header=0, index_col=0)
print(data)


# 设置正常显示中文标签
plt.rcParams['font.sans-serif'] = ['SimHei']
# 正常显示负号
plt.rcParams['axes.unicode_minus'] = False
# 设置字体大小
plt.rcParams.update({'font.size': 16})

data = pd.read_excel('./乡镇文化站数与从业人数.xlsx', header=0, index_col=0)
# 提取数据
x = data['年份']
y1 = data['乡镇文化站数']
y2 = data['乡镇文化站从业人员数']

def plot_combination():
    plt.figure(figsize=(16, 8))
    plt.subplot(111)

    # 柱形宽度
    bar_width = 0.35

    # 在主坐标轴绘制柱形图
    plt.bar(x, y1, bar_width,color='r', label='乡镇文化站数')
    plt.ylim(31500,35000)


    # 设置图例
    plt.legend(loc='upper left')
    plt.ylabel("单位:站",fontsize=20, loc="center")

    # 设置横坐标的标签
    plt.xticks(x)
    #plt.set_xticklabels(sale.index)
    plt.xlabel("年份",fontsize=20, loc="center")

    # 在次坐标轴上绘制折线图
    plt.twinx()
    plt.plot(x, y2, ls='--', lw=2, color='c', marker='v',ms = 10, mfc = 'k', label='站从业人员数')

    # 设置次坐标轴的取值范围,避免折线图波动过大
    plt.ylim(0,120000)

    # 设置图例
    plt.legend(loc='upper right')
    # 设置标题
    plt.title('\n乡镇文化站数与站从业人员数的情况\n', fontsize=26, loc='center', color='k')
    plt.ylabel("单位:人",fontsize=20, loc="center")

    plt.savefig('./figure1.jpg', bbox_inches='tight')

    plt.show()

if __name__ == '__main__':

    plot_combination()

三、结果显示如图

四、小结

       滑倒这里,你有什么感想呢?你会不会有种想法,就是多个柱状图和折线图的组合图,也就是并列垂直柱状图和折线图的组合图。关于这个另一篇文章已经提到了,如果想要了解可以点击下面链接哦!

 

python实现并列垂直柱状图与折线图的组合图_青枫浦上看桃花的博客-CSDN博客

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青枫浦上看桃花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值