大家好,小编来为大家解答以下问题,基于python的图表绘图工具,基于python的图表生成系统,现在让我们一起来看看吧!
一、前言
折线图是一种常用的可视化图表,可以清晰地展示数据随时间或其他连续变量的变化趋势,通过连接数据点,可以观察到数据的上升、下降、波动等变化趋势,帮助人们更直观地理解数据的变化规律。
二、基本折线图
2.1简单折线图
import matplotlib.pyplot as plt
# 准备数据
x = [1, 2, 3, 4, 5] # x轴数据
y = [2, 6, 1, 3, 10] # y轴数据
# 设置字体
plt.rcParams['font.family']='Times New Roman, SimSun'
# 绘制折线图
plt.plot(x, y)
# 添加标题和坐标轴标签
plt.title('折线图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
# 显示图形
plt.show()
结果如下图所示:
2.2设置线条和点
plt.plot(x, y,color='red',linestyle='--',marker='*')
x:横坐标数据
y:纵坐标数据
color:折线的颜色
character color
========== ========
'b' blue
'g' green
'r' red
'c' cyan
'm' magenta
'y' yellow
'k' black
'w' white
linestyle:折线的类型,默认为实线
``'-'`` 实线样式
``'--'`` 虚线样式
``'-.'`` 点划线样式
``':'`` 点虚线样式
marker:数据点的标记样式,默认为空
三角形 '^'
五角星 '*'
圆圈 'o'
加号 '+'
缩写形式:plt.plot(x, y,'*:r')
注:引号内的不区分顺序,但是颜色需要用缩写
其他的一些参数:
参数 linewidth 用以控制线条宽度(默认值为0.5)
参数 alpha=0.5 用以控制线条透明度
参数 markersize 用以控制标记大小
参数 markeredgecolor 用以控制标记的轮廓颜色
参数 markerfacecolor 用以控制标记的填充颜色
三、进阶
3.1添加图例、添加数字标签
import matplotlib.pyplot as plt
# 月份
x1 = ['2017-01', '2017-02', '2017-03', '2017-04', '2017-05', '2017-06', '2017-07', '2017-08',
'2017-09', '2017-10', '2017-11', '2017-12']
# 体重
y1 = [86, 85, 84, 80, 75, 70, 70, 74, 78, 70, 74, 80]
# 设置画布大小
plt.figure(figsize=(10, 7))
# 设置字体
font1 = {'family': 'Times New Roman', 'weight': 'normal', 'size': 14}
plt.rc('font', **font1)
# 绘图
plt.plot(x1, y1, label='weight changes', linewidth=3, color='r', marker='o',
markerfacecolor='blue', markersize=14)
# 标题
plt.title("my weight", fontproperties=font1)
# 横坐标描述
plt.xlabel('month', fontproperties=font1)
# 纵坐标描述
plt.ylabel('weight', fontproperties=font1)
# 设置数字标签
for a, b in zip(x1, y1):
plt.text(a, b+0.5, b, ha='center', va='bottom', fontproperties=font1)
# 设置图例
plt.legend()
plt.show()
这段代码添加了画布大小设置、字体设置、数字标签设置以及图例设置,结果如下:
3.2一图绘制多条折线
import matplotlib.pyplot as plt
import seaborn as sns
x = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
highest = [12, 15, 18, 14, 16, 14, 10]
lowest = [6, 4, 8, 12, 10, 9, 7]
plt.plot(x, highest, "rs--", label="最高气温")
plt.plot(x, lowest, "rd--", label="最低气温")
for a, b in zip(x, highest):
plt.text(a, b+1, b, ha='center', va='bottom')
# 数据显示的横坐标、显示的位置高度、显示的数据值的大小
for a, b in zip(x, lowest):
plt.text(a, b-2, b, ha='center', va='bottom')
# 绘图风格设置,使用seaborn库的API来设置样式
sns.set_style('darkgrid')
# # 设置字体
font1 = {'family': 'SimSun', 'weight': 'normal', 'size': 14}
plt.rc('font', **font1)
plt.rcParams["axes.unicode_minus"] = False
# x轴刻度标签设置
plt.xticks(x, fontproperties=font1)
# y轴标签数值范围设置
plt.ylim(0, 25)
# 标题设置
plt.title("一周气温变化趋势", fontproperties=font1)
plt.xlabel("星期", fontproperties=font1)
plt.ylabel("气温", fontproperties=font1)
# 图例设置
plt.legend()
plt.show()
这段代码对绘图的风格、x轴刻度标签的字体、y轴刻度标签的范围进行了设置,结果如下:
本人读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,对Python有一定认知和理解,会结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例python的turtle画老虎。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。