让信息一目了然,Matplotlib数据可视化应用
一、matplotlib简介
Matplotlib的一些主要特点和功能:
绘图风格:Matplotlib支持多种绘图风格,包括类似于Matlab的风格(plt.style.use('classic'))和现代化的风格(plt.style.use('ggplot'))。
支持的图表类型:Matplotlib支持多种常见的图表类型,包括线图、散点图、柱状图、饼图、直方图、箱线图、热力图等。
绘图组件:你可以自定义图形中的各个组件,包括标题、轴标签、图例、网格线等。
多子图布局:Matplotlib允许在单个图像中创建多个子图,以展示多个图表或视图。
支持LaTeX数学表达式:你可以在图表中使用LaTeX语法的数学表达式来展示数学符号和公式。
保存和导出图形:Matplotlib可以将图形保存为常见的图像格式,如PNG、JPG、PDF等。你也可以将图表导出到矢量图形格式,如SVG和EPS。
支持交互式绘图:通过结合其他库(如IPython、Jupyter Notebook),Matplotlib可以实现交互式绘图,使你能够在图形中进行缩放、平移和选取等操作。
matplotlib常用绘图函数
1.plt.plot():绘制线图
例:plt.plot(x, y, linestyle='-', color='blue', marker='o', label='line 1')
2.plt.scatter():绘制散点图
例:plt.scatter(x, y, color='red', marker='o', label='scatter plot')
3.plt.bar():绘制柱状图
例:plt.bar(x, height, width=0.8, color='green',, label='bar plot')
4.plt.hist():绘制直方图
例:plt.hist(data, bins=10, color='orange', edgecolor='black', label='histogram')
5.plt.pie():绘制饼图
例:plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)
6.plt.boxplot():绘制箱线图
例:plt.boxplot(data, vert=True, patch_artist=True)
matplotlib常用美化函数:
plt.yticks():这个函数用于自定义Y轴的刻度,用法类似于plt.xticks()。你可以传递一个列表或数组给该函数,指定要显示的刻度值。
例:plt.yticks([2, 6, 10]) # 设置Y轴刻度为2、6和10
plt.legend():这个函数用于添加图例。图例是用于解释图中各个元素的标识,通常与不同线条或数据系列相关联。你可以在plot()函数中使用label参数为每个数据系列指定标签,然后使用plt.legend()函数创建图例。例如,plt.plot(x, y, label='数据系列1')将为折线图添加一个标签为'数据系列1'的图例。
例:plt.legend(loc='upper right', fontsize='small')
plt.xlabel('X轴'):xlabel()函数用于给 x 轴添加标签。在括号内传递要显示的标签字符串,例如'X轴'。这样会在图形上方的 x 轴位置显示相应的标签。
例:plt.xlabel('X轴') # 设置X轴标签为'X轴'
plt.ylabel('Y轴'):ylabel()函数用于给 y 轴添加标签。与xlabel()函数类似,你可以在括号内传递要显示的标签字符串,例如'Y轴'。这样会在图形左侧的 y 轴位置显示相应的标签。
例:plt.ylabel('Y轴') # 设置Y轴标签为'Y轴'
plt.title('折线图'):title()函数用于添加图形的标题。在括号内传递要显示的标题字符串,例如'折线图'。这样会在图形的顶部中心位置显示相应的标题。
例:plt.title('折线图') # 设置图形标题为'折线图'
plt.show():show()函数用于显示绘制的图形。在代码的最后使用该函数,以便将绘制的折线图显示在屏幕上。如果省略该函数,图形将无法显示。
二、图像绘制案例
例1 绘制折线图:
import matplotlib.pyplot as plt
#防止报错
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 示例数据
x = [1, 2, 3, 4, 5]
y = [10, 15, 20, 25, 30]
# 绘制折线图
plt.plot(x, y, marker='o', linestyle='-', color='b')
# 添加标题和标签
plt.title('折线图示例')
plt.xlabel('X轴标签')
plt.ylabel('Y轴标签')
# 显示图表
plt.show()
注:第二,第三行作用分别是防止使用中文标题报错和复制刻度为负数时报错
例2 绘制柱形图:
import matplotlib.pyplot as plt
#防止报错
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 示例数据
categories = ['Category A', 'Category B', 'Category C', 'Category D']
values = [30, 50, 20, 40]
# 绘制柱形图
plt.bar(categories, values, color='b')
# 添加标题和标签
plt.title('柱形图示例')
plt.xlabel('分类')
plt.ylabel('值')
# 显示图表
plt.show()
例3 绘制饼图:
import matplotlib.pyplot as plt
#防止报错
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 示例数据
sizes = [25, 30, 20, 15, 10]
labels = ['Category A', 'Category B', 'Category C', 'Category D', 'Category E']
# 绘制饼图
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)
# 添加标题
plt.title('饼图示例')
# 显示图表
plt.axis('equal') # 使饼图为圆形
plt.show()
例4 加大量美化的折线图:
import matplotlib.pyplot as plt
#画图标签报错解决
import matplotlib
matplotlib.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
# 数据
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun']
production_output = [30, 36, 33, 39, 42, 40.5]
production_efficiency = [10, 12, 11.5, 13.5, 14, 13.5]
defect_rate = [2.5, 2.2, 2.8, 2.0, 2.1, 2.3]
# 创建折线图
plt.plot(months, production_output, marker='o', linestyle='-', label='生产产量(单位:件)')
plt.plot(months, production_efficiency, marker='s', linestyle='--', label='生产效率(单位:件/人时)')
plt.plot(months, defect_rate, marker='^', linestyle=':', label='不良品率(单位:%)')
# 添加标题和标签
plt.title('工业生产指标折线图')
plt.xlabel('月份')
plt.ylabel('数值')
# 添加图例
plt.legend()
# 自定义x轴刻度
plt.xticks(rotation=45)
# 自定义y轴刻度范围
plt.ylim(0, 60)
# 添加数据点的标签
for i in range(len(months)):
plt.text(months[i],production_output[i], str(production_output[i]), ha='center', va='bottom')
plt.text(months[i],production_efficiency[i],str(production_efficiency[i]),ha='center', va='bottom')
plt.text(months[i], defect_rate[i], str(defect_rate[i]), ha='center', va='bottom')
# 显示网格线
plt.grid(True)
# 显示图形
plt.show()
免责声明:
本文转载自【 专一网】,版权归原作者所有,如若侵权请联系我们进行删除!
易知微以自主研发的EasyV数字孪生可视化搭建平台为核心,结合WebGL、3D游戏引擎、GIS、BIM、CIM等技术,协同各个行业的生态伙伴,围绕着数字孪生技术、数字驾驶舱和行业应用,共同建设数字增强世界,帮助客户实现数字化管理,加速数字化转型。
易知微已经为3000+ 客户提供数字孪生可视化平台和应用,覆盖智慧楼宇、智慧园区、智慧城市、数字政府、数字乡村、智慧文旅、工业互联网等众多行业领域,包括国家电网、移动云、中交建、中铁建、融创、云上贵州、厦门象屿、天津火箭、上海电视台、金华防汛大脑、良渚古城遗址公园、李宁、浙江大学等典型案例!