python实现并列垂直柱状图与折线图的组合图

您所在的位置:网站首页 折线图加柱形图怎么画 python实现并列垂直柱状图与折线图的组合图

python实现并列垂直柱状图与折线图的组合图

2024-03-15 14:12| 来源: 网络整理| 查看: 265

目录

一、数据源

二、实现的代码

三、结果展示

 四、拓展知识

1.绘图标记

1.2线类型:

1.3颜色类型:

标记大小与颜色

1.4线的类型

1.5线的颜色

1.6标题与标签的定位

1.7Matplotlib 网格线

一、数据源

二、实现的代码 #导入库 import pandas as pd import matplotlib.pyplot as plt #自定义函数 def plot_combination(): sale = pd.read_excel('./人均教育支出.xlsx', header=0, index_col=0) # 设置正常显示中文标签 plt.rcParams['font.sans-serif'] = ['SimHei'] # 正常显示负号 plt.rcParams['axes.unicode_minus'] = False # 设置字体大小 plt.rcParams.update({'font.size': 16}) # 提取数据 x = sale['年份'] y1 = sale['城镇'] y2 = sale['农村'] y3= sale['占比'] plt.figure(figsize=(16, 8)) plt.subplot(111) # 柱形宽度 bar_width = 0.35 # 在主坐标轴绘制柱形图 plt.bar(x, y1, bar_width,color='r', label='城镇') plt.bar(x + bar_width, y2, bar_width,color='#FFFF00', label='农村') # 设置坐标轴的取值范围,避免柱子过高而与图例重叠 plt.ylim(0, max(y1.max(), y2.max()) * 1.2) # 设置图例 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() # ls:线的类型,lw:宽度 plt.plot(x, y3, ls='--', lw=2, color='c', marker='d',ms = 20, mfc = 'm', label='农村与城镇的消费占比') # 设置次坐标轴的取值范围,避免折线图波动过大,这里默认显示 plt.ylim() # 设置图例 plt.legend(loc='upper center') # 定义显示百分号的函数 def to_percent(number, position=0): return '%.f' % (number*100) + '%' # 次坐标轴的标签显示百分号 FuncFormatter:自定义格式函数包 from matplotlib.ticker import FuncFormatter plt.gca().yaxis.set_major_formatter(FuncFormatter(to_percent)) # 设置标题 plt.title('\n人均教育支出占比\n', fontsize=26, loc='center', color='k') plt.ylabel("单位:%",fontsize=20, loc="center") #保存图片 plt.savefig('./figure.jpg', bbox_inches='tight') plt.show() if __name__ == '__main__': plot_combination() 三、结果展示

 四、拓展知识 1.绘图标记

marker 可以定义的符号如下:

标记符号描述"."

点","

像素点"o"

实心圆"v"

下三角"^"

上三角""

右三角"1"

下三叉"2"

上三叉"3"

左三叉"4"

右三叉"8"

八角形"s"

正方形"p"

五边形"P"

加号(填充)"*"

星号"h"

六边形 1"H"

六边形 2"+"

加号"x"

乘号 x"X"

乘号 x (填充)"D"

菱形"d"

瘦菱形"|"

竖线"_"

横线0 (TICKLEFT)

左横线1 (TICKRIGHT)

右横线2 (TICKUP)

上竖线3 (TICKDOWN)

下竖线4 (CARETLEFT)

左箭头5 (CARETRIGHT)

右箭头6 (CARETUP)

上箭头7 (CARETDOWN)

下箭头8 (CARETLEFTBASE)

左箭头 (中间点为基准)9 (CARETRIGHTBASE)

右箭头 (中间点为基准)10 (CARETUPBASE)

上箭头 (中间点为基准)11 (CARETDOWNBASE)

下箭头 (中间点为基准)"None", " " or ""没有任何标记'$...$'

渲染指定的字符。例如 "$f$" 以字母 f 为标记。 1.2线类型: 线类型标记描述'-'实线':'虚线'--'破折线'-.'点划线 1.3颜色类型: 颜色标记描述'r'红色'g'绿色'b'蓝色'c'青色'm'品红'y'黄色'k'黑色'w'白色 标记大小与颜色

我们可以自定义标记的大小与颜色,使用的参数分别是:

markersize,简写为 ms:定义标记的大小。markerfacecolor,简写为 mfc:定义标记内部的颜色。markeredgecolor,简写为 mec:定义标记边框的颜色。 1.4线的类型

线的类型可以使用 linestyle 参数来定义,简写为 ls。

类型简写说明'solid' (默认)'-'实线'dotted'':'点虚线'dashed''--'破折线'dashdot''-.'点划线'None''' 或 ' '不画线 1.5线的颜色

线的颜色可以使用 color 参数来定义,简写为 c。

颜色类型:

颜色标记描述'r'红色'g'绿色'b'蓝色'c'青色'm'品红'y'黄色'k'黑色'w'白色

当然也可以自定义颜色类型,例如:SeaGreen、#8FBC8F 等,完整样式可以参考 HTML 颜色值。

1.6标题与标签的定位

title() 方法提供了 loc 参数来设置标题显示的位置,可以设置为: 'left', 'right', 和 'center', 默认值为 'center'。

xlabel() 方法提供了 loc 参数来设置 x 轴显示的位置,可以设置为: 'left', 'right', 和 'center', 默认值为 'center'。

ylabel() 方法提供了 loc 参数来设置 y 轴显示的位置,可以设置为: 'bottom', 'top', 和 'center', 默认值为 'center'。

1.7Matplotlib 网格线

我们可以使用 pyplot 中的 grid() 方法来设置图表中的网格线。

grid() 方法语法格式如下:

matplotlib.pyplot.grid(b=None, which='major', axis='both', )

参数说明:

b:可选,默认为 None,可以设置布尔值,true 为显示网格线,false 为不显示,如果设置 **kwargs 参数,则值为 true。which:可选,可选值有 'major'、'minor' 和 'both',默认为 'major',表示应用更改的网格线。axis:可选,设置显示哪个方向的网格线,可以是取 'both'(默认),'x' 或 'y',分别表示两个方向,x 轴方向或 y 轴方向。**kwargs:可选,设置网格样式,可以是 color='r', linestyle='-' 和 linewidth=2,分别表示网格线的颜色,样式和宽度。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3