python实现多条折线图在一张图上显示

目录

简介

类型

 区别

一、数据源

二、实现的代码

三、结果展示

 四、绘制多图

 五、制作图的技巧

前言

相信很多初学的小伙伴会有这样的疑问,画一条折线图倒是简单,那么画多条折线图呢?其实会画一条折线图,那么多条折线图也不会很难,通过这篇文章相信你会有所了解了。

简介

        如果分类标签是文本并且代表均匀分布的数值(如月、季度或财政年度),则应该使用折线图。当有多个系列时,尤其适合使用折线图 — 对于一个系列,应该考虑使用类别图。如果有几个均匀分布的数值标签(尤其是年),也应该使用折线图。如果拥有的数值标签多于十个,请改用散点图。另外,折线图是支持多数据进行对比的。

类型

折线图具有下列图表子类型:

BDP折线图(单线、多线)(2)折线图和带数据标记的折线图 折线图用于显示随时间或有序类别而变化的趋势,可能显示数据点以表示单个数据值,也可能不显示这些数据点。在有很多数据点并且它们的显示顺序很重要时,折线图尤其有用。

 区别

       堆积折线图和带数据标记的堆积折线图:堆积折线图用于显示每一数值所占大小随时间或有序类别而变化的趋势,可能显示数据点以表示单个数据值,也可能不显示这些数据点。如果有很多类别或者数值是近似的,则应该使用无数据点堆积折线图。

提示为更好地显示此类型的数据,您可能要考虑改用堆积面积图。

百分比堆积折线图和带数据标记的百分比堆积折线图:百分比堆积折线图用于显示每一数值所占百分比随时间或有序类别而变化的趋势,

三维折线图:三维折线图将每一行或列的数据显示为三维标记。三维折线图具有可修改的水平轴、垂直轴和深度轴。

一、数据源

python实现多条折线图在一张图上显示_第1张图片

二、实现的代码

import pandas as pd
import matplotlib.pyplot as plt

# 设置正常显示中文标签
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)
#print('data:\n',data)



x = data['年份'].tolist()
#print(x)

y1 = data['渔业总产值(亿元)'].tolist()
y2 = data['畜牧业总产值(亿元)'].tolist()
y3 = data['林业总产值(亿元)'].tolist()
y4 = data['农业总产值(亿元)'].tolist()
# print(y1)
# print(y2)
# print(y3)
fig = plt.figure(figsize=( 16, 8))

plt.title('农林牧渔业各总产值分布情况',fontsize=26, loc='center', color='k')  # 折线图标题
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示汉字
plt.xlabel('年份')  # x轴标题
plt.ylabel('总产值:亿元')  # y轴标题
plt.plot(x, y1, marker='o', markersize=3)  # 绘制折线图,添加数据点,设置点的大小
plt.plot(x, y2, marker='o', markersize=3)
plt.plot(x, y3, marker='o', markersize=3)
plt.plot(x, y4, marker='o', markersize=3)


# for a, b in zip(x, y1):
#     plt.text(a, b, b, ha='center', va='bottom', fontsize=10)  # 设置数据标签位置及大小
# for a, b in zip(x, y2):
#     plt.text(a, b, b, ha='center', va='bottom', fontsize=10)
# for a, b in zip(x, y3):
#     plt.text(a, b, b, ha='center', va='bottom', fontsize=10)
# for a, b in zip(x, y4):
#     plt.text(a, b, b, ha='center', va='bottom', fontsize=10)
#

plt.legend(['渔业总产值(亿元', '畜牧业总产值(亿元)', '林业总产值(亿元)', '农业总产值(亿元)'])  # 设置折线名称
plt.savefig('./figure.jpg', bbox_inches='tight')
plt.show()  # 显示折线图

三、结果展示

python实现多条折线图在一张图上显示_第2张图片

 四、绘制多图

import matplotlib.pyplot as plt
import numpy as np

#plot 1:
x = np.array([0, 6])
y = np.array([0, 100])

plt.subplot(2, 2, 1)
plt.plot(x,y)
plt.title("plot 1")

#plot 2:
x = np.array([1, 2, 3, 4])
y = np.array([1, 4, 9, 16])

plt.subplot(2, 2, 2)
plt.plot(x,y)
plt.title("plot 2")

#plot 3:
x = np.array([1, 2, 3, 4])
y = np.array([3, 5, 7, 9])

plt.subplot(2, 2, 3)
plt.plot(x,y)
plt.title("plot 3")

#plot 4:
x = np.array([1, 2, 3, 4])
y = np.array([4, 5, 6, 7])

plt.subplot(2, 2, 4)
plt.plot(x,y)
plt.title("plot 4")

plt.suptitle("RUNOOB subplot Test")
plt.show()

显示结果如下:

python实现多条折线图在一张图上显示_第3张图片

 五、制作图的技巧

1.“字体”的处理

建议:取消图表的字体“自动缩放”功能,这样可防止在变动图表大小时,图表项的字体发生不必要的改变。

取消所有图表项的“自动缩放”功能,要取消所有图表项的字体“自动缩放”功能,取消图表区的“字体缩放“功能即可。可通过双击图表区,并调出“图表区格式”对话框,切换到“字体”选项卡,取消“自动缩放”前面的复选框的选择,这样便是取消了所有图表项的字体缩放功能,然后分别对各图表项的字体按需要设定字体大小。

2.“网格线”的处理

使用“折线图”或“散点图”时,尤其要注意淡化网格线对数据系列的影响,可取消网格线或是将其设为虚线,并改为浅色。

3. 数据系列格式的设置

一般不使用默认的格式设置,根据自己的需求改变“线形“或是“数据标记”及“填充”。

如截图中,上面的一个图表进行的是普通格式化操作;而下面一个是采取如上几点格式化建议后的图表。

你可能感兴趣的:(python,pandas,开发语言,database,大数据)