当前位置:首页 > 行业资讯 > 让信息一目了然,Matplotlib数据可视化应用

让信息一目了然,Matplotlib数据可视化应用

1年前 (2023-08-18)行业资讯

一、matplotlib简介

Matplotlib是一个用于绘制数据可视化图表的Python库。它提供了广泛的绘图选项,可用于创建各种静态、动态和交互式图形,帮助数据科学家和分析师进行数据探索、展示和传达。

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+ 客户提供数字孪生可视化平台和应用,覆盖智慧楼宇、智慧园区、智慧城市、数字政府、数字乡村、智慧文旅、工业互联网等众多行业领域,包括国家电网、移动云、中交建、中铁建、融创、云上贵州、厦门象屿、天津火箭、上海电视台、金华防汛大脑、良渚古城遗址公园、李宁、浙江大学等典型案例!

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。