Python五种方式实现可视化,包括炫酷的动态图(matplotlib、seaborn、plotly、bokeh、pyecharts)——matplotlib传记
后台-插件-广告管理-内容页头部广告(手机) |
一、matplotlib简介
1、介绍
matplotlib是一个功能强大的Python绘图库,用于创建各种类型的图形和可视化数据。它提供了广泛的绘图功能和灵活的配置选项,可以满足不同需求下的数据可视化需求。
2、主要特点
matplotlib的主要特点包括: 简单易用:matplotlib的API设计简单直观,使用起来非常方便。它的语法和Matlab绘图库相似,对于熟悉Matlab的用户来说更容易上手。 多种图形类型:matplotlib支持多种类型的图形,包括折线图、散点图、柱状图、饼图、直方图、箱线图、热力图等。用户可以根据数据类型和需求选择合适的图形类型。 高度可定制:matplotlib提供了丰富的配置选项,用户可以自定义图形的样式、颜色、标签、标题、轴标签等。通过配置选项,可以灵活地调整图形的外观和布局,以满足个性化的需求。 支持多种输出格式:matplotlib可以将图形输出为多种格式,包括图片文件(如PNG、JPEG)、PDF、SVG等。用户可以根据需要选择合适的输出格式,方便地将图形用于报告、文档或网页中。 丰富的扩展库:matplotlib生态系统非常丰富,有许多扩展库可以与之配合使用,如Seaborn、Pandas等。这些扩展库提供了更高级的绘图功能和更方便的数据处理工具,进一步提升了matplotlib的使用体验和效果。 总之,matplotlib是一个功能强大且灵活的Python绘图库,适用于各种数据可视化需求。无论是初学者还是专业人士,都可以通过matplotlib轻松地创建出精美的图形,并更好地理解和分析数据。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
3、matplotlib库可以实现多种类型的图形,包括但不限于以下几种:
折线图(Line Plot):用于显示连续数据的趋势和变化。 散点图(Scatter Plot):用于显示两个变量之间的关系和分布。 柱状图(Bar Plot):用于比较不同类别或组之间的数值。 条形图(Barh Plot):用于水平展示柱状图。 饼图(Pie Chart):用于显示数据的相对比例和占比。 直方图(Histogram):用于显示数据的分布情况。 箱线图(Box Plot):用于显示数据的分散情况和异常值。 热力图(Heatmap):用于显示数据的矩阵关系。 3D图形(3D Plots):包括3D散点图、3D曲面图等。 等高线图(Contour Plot):用于显示二维数据的等高线。 极坐标图(Polar Plot):用于显示数据在极坐标系下的分布。 简单地理图(Simple Maps):用于显示地理数据的简单地图。 除了上述常见的图形类型,matplotlib库还提供了许多其他类型的图形,同时也支持自定义图形的样式、颜色、标签等。通过使用matplotlib库,可以根据具体的需求和数据类型选择合适的图形类型,并灵活地进行定制和配置,以实现所需的数据可视化效果。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
4、基本属性设置
matplotlib库提供了丰富的属性设置,用于自定义图形的样式和外观。以下是常用的属性设置: 颜色设置: color:设置图形的颜色,可以使用预定义的颜色名称(如'red'、'blue'等),也可以使用RGB值或十六进制颜色码。 edgecolor:设置图形边缘的颜色。 facecolor:设置图形内部的填充颜色。 线型设置: linestyle:设置线条的样式,如实线、虚线等。 linewidth:设置线条的宽度。 标记设置: marker:设置标记的样式,如圆圈、方形等。 markersize:设置标记的大小。 文本设置: fontsize:设置文本的字体大小。 fontweight:设置文本的字体粗细。 fontfamily:设置文本的字体族。 图例设置: legend:设置图例的位置和样式。 label:设置图例的标签。 坐标轴设置: xlabel:设置x轴的标签。 ylabel:设置y轴的标签。 xticks:设置x轴刻度的位置和标签。 yticks:设置y轴刻度的位置和标签。 图形大小和边距设置: figsize:设置图形的大小。 dpi:设置图形的分辨率。 tight_layout:自动调整子图的布局,使其适应图形大小。 以上只是一些常用的属性设置,matplotlib还提供了更多的属性和方法,用于进一步自定义图形的样式和外观。可以通过查阅matplotlib的官方文档来获取更详细的信息。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
(1)颜色设置:
在matplotlib中,可以使用RGB值或十六进制颜色码来设置图形的颜色。以下是一些常用的颜色的RGB值和十六进制颜色码: 预定义颜色名称: 'red':红色 'blue':蓝色 'green':绿色 'yellow':黄色 'orange':橙色 'purple':紫色 'brown':棕色 'gray':灰色 'black':黑色 'white':白色 RGB值: (1, 0, 0):红色 (0, 0, 1):蓝色 (0, 1, 0):绿色 (1, 1, 0):黄色 (1, 0.5, 0):橙色 (0.5, 0, 0.5):紫色 (0.6, 0.4, 0.2):棕色 (0.5, 0.5, 0.5):灰色 (0, 0, 0):黑色 (1, 1, 1):白色 十六进制颜色码: '#FF0000':红色 '#0000FF':蓝色 '#00FF00':绿色 '#FFFF00':黄色 '#FFA500':橙色 '#800080':紫色 '#996633':棕色 '#808080':灰色 '#000000':黑色 '#FFFFFF':白色 可以根据需要选择合适的颜色来设置图形的外观。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
(2)线型设置:
linestyle属性用于设置线条的样式,可以通过以下属性值来设置线条的样式: 实线样式: '-':实线 'solid':实线 虚线样式: '--':破折线 'dashed':破折线 点线样式: ':':点线 'dotted':点线 点划线样式: '-.':点划线 'dashdot':点划线 除了上述属性值外,还可以使用自定义的线型设置,例如使用一个由线段长度和间隔长度组成的元组来表示虚线的样式,如(10, 5)表示线段长度为10,间隔长度为5的虚线。 示例代码: import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25] plt.plot(x, y, linestyle='-', color='blue') # 使用实线样式 plt.plot(x, y, linestyle='--', color='red') # 使用虚线样式 plt.plot(x, y, linestyle=':', color='green') # 使用点线样式 plt.plot(x, y, linestyle='-.', color='purple') # 使用点划线样式 plt.plot(x, y, linestyle=(10, 5), color='orange') # 使用自定义虚线样式 plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
(3)标记设置:
marker属性用于设置数据点的标记样式,可以通过以下属性值来设置标记的样式: 点样式: '.':小圆点 'o':实心圆点 'v':下三角形 '^':上三角形 '<':左三角形 '>':右三角形 '1':下指针 '2':上指针 '3':左指针 '4':右指针 's':正方形 'p':五边形 '*':星形 'h':六边形1 'H':六边形2 '+':加号 'x':叉号 'D':菱形 'd':瘦菱形 '|':垂直线 '_':水平线 自定义标记样式: 使用元组 (marker, size) 来自定义标记样式,其中 marker 表示标记的形状,size 表示标记的大小。 示例代码: import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25] plt.plot(x, y, marker='.', linestyle='-', color='blue') # 使用小圆点作为标记 plt.plot(x, y, marker='o', linestyle='-', color='red') # 使用实心圆点作为标记 plt.plot(x, y, marker='v', linestyle='-', color='green') # 使用下三角形作为标记 plt.plot(x, y, marker='^', linestyle='-', color='purple') # 使用上三角形作为标记 plt.plot(x, y, marker='s', linestyle='-', color='orange') # 使用正方形作为标记 plt.plot(x, y, marker=('D', 8), linestyle='-', color='black') # 使用自定义标记样式 plt.show() 运行上述代码将会绘制出不同样式的标记点。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
(4)文本设置:
文本设置属性用于设置文本的样式和属性,可以通过以下属性来设置文本的样式: fontfamily:设置文本的字体族(如 'serif'、'sans-serif'、'cursive'、'fantasy'、'monospace'等)。 fontsize:设置文本的字体大小(如 'large'、'x-large'、'smaller'、'larger'等)。 fontweight:设置文本的字体粗细(如 'normal'、'bold'、'light'、'heavy'等)。 fontstyle:设置文本的字体风格(如 'normal'、'italic'、'oblique'等)。 color:设置文本的颜色(如 'red'、'blue'、'green'等)。 backgroundcolor:设置文本的背景颜色(如 'yellow'、'lightblue'、'pink'等)。 horizontalalignment:设置文本的水平对齐方式(如 'left'、'center'、'right'等)。 verticalalignment:设置文本的垂直对齐方式(如 'top'、'center'、'bottom'等)。 rotation:设置文本的旋转角度。 bbox:设置文本的边框样式和属性(如边框颜色、边框粗细等)。 示例代码: import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25] plt.plot(x, y) plt.text(2, 10, 'Sample Text', fontfamily='serif', fontsize='x-large', fontweight='bold', fontstyle='italic', color='red', backgroundcolor='yellow', horizontalalignment='center', verticalalignment='center', rotation=45, bbox=dict(facecolor='lightblue', edgecolor='blue', linewidth=2)) plt.show() 运行上述代码将会绘制出一条曲线和一个带有样式设置的文本。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
(5)图例设置:
图例设置属性用于设置图例的样式和属性,可以通过以下属性来设置图例的样式: loc:设置图例的位置(如 'upper right'、'lower left'、'center'等)。 bbox_to_anchor:设置图例的位置,以坐标轴为参考点进行设置。 title:设置图例的标题。 fontsize:设置图例的字体大小。 frameon:设置图例是否显示边框。 framealpha:设置图例边框的透明度。 ncol:设置图例的列数。 markerscale:设置图例标记的缩放比例。 title_fontsize:设置图例标题的字体大小。 shadow:设置图例是否显示阴影。 示例代码: import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y1 = [1, 4, 9, 16, 25] y2 = [1, 2, 3, 4, 5] plt.plot(x, y1, label='Line 1') plt.plot(x, y2, label='Line 2') plt.legend(loc='upper right', title='Legend', fontsize='large', frameon=True, framealpha=0.8, ncol=2, markerscale=1.5, title_fontsize='x-large', shadow=True) plt.show() 运行上述代码将会绘制出两条曲线和一个带有样式设置的图例。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
(6)坐标轴设置:
坐标轴设置属性用于设置坐标轴的样式和属性,可以通过以下属性来设置坐标轴的样式: xlabel:设置 x 轴的标签。 ylabel:设置 y 轴的标签。 xlim:设置 x 轴的显示范围。 ylim:设置 y 轴的显示范围。 xticks:设置 x 轴的刻度值。 yticks:设置 y 轴的刻度值。 xscale:设置 x 轴的刻度缩放(如 'linear'、'log'、'symlog'等)。 yscale:设置 y 轴的刻度缩放(如 'linear'、'log'、'symlog'等)。 grid:设置是否显示坐标轴网格线。 gridcolor:设置坐标轴网格线的颜色。 gridlinestyle:设置坐标轴网格线的样式。 gridlinewidth:设置坐标轴网格线的宽度。 tick_params:设置刻度线的样式和属性(如刻度线的长度、宽度、颜色等)。 示例代码: import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25] plt.plot(x, y) plt.xlabel('X-axis', fontsize='large') plt.ylabel('Y-axis', fontsize='large') plt.xlim(0, 6) plt.ylim(0, 30) plt.xticks([1, 2, 3, 4, 5], ['A', 'B', 'C', 'D', 'E'], rotation=45) plt.yticks([0, 10, 20, 30], ['0', '10', '20', '30']) plt.xscale('linear') plt.yscale('linear') plt.grid(True, color='gray', linestyle='--', linewidth=0.5) plt.tick_params(axis='both', which='both', length=5, width=1, color='black') plt.show() 运行上述代码将会绘制出一条曲线,并设置了坐标轴的样式和属性。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
二、matplotlib实战
1、折线图的实现
简介:
折线图(Line plot)是一种用于展示数据随着时间、顺序或其他连续变量的变化趋势的图表。它通过连接数据点的线段来显示数据的变化情况,可以帮助我们观察和分析数据的趋势、周期性和关联性。 折线图的主要特点和作用如下: 变化趋势观察:折线图可以显示数据随时间或其他连续变量的变化趋势,帮助我们观察和分析数据的增长、下降、波动等情况。 周期性分析:对于具有周期性的数据,折线图可以清晰地展示数据的周期性变化,如季节性变化、周期性波动等。 关联性分析:当有多组相关数据时,可以通过绘制多条折线来比较它们之间的关联性和趋势,从而观察它们的相似性或差异性。 异常值检测:折线图可以帮助我们发现数据中的异常值,即与其他数据点相比较为异常的数值。 数据预测和预测模型评估:通过观察折线图的趋势,我们可以对未来的数据进行预测,并评估预测模型的准确性和可靠性。 数据可视化:折线图是一种直观、简洁的方式来展示数据的变化趋势,可以用于报告、演示和与他人分享数据。 折线图通常在时间序列分析、趋势分析、市场分析、科学实验等领域广泛应用。通过观察和分析折线图,我们可以更好地理解数据的变化情况,进而做出更准确的决策和预测。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
(1)简单折线图(基本每行代码都有注解,大家可以参考,实现方式多种多样)
import matplotlib.pyplot as plt import numpy as np # x,y轴的数据生成 x = np.linspace(0, 10, 100) y = np.sin(x) # 创建图形和坐标轴(plt.figure(figsize=(12, 4)),设置了图形的大小为宽度为12英寸,高度为4英寸) fig, ax = plt.subplots(figsize=(12, 4)) # 绘制曲线,设置y轴标签和曲线颜色 ax.plot(x, y, label='sin(x)',color='red') # 添加标题和标签 ax.set_title('Sine Wave') ax.set_xlabel('x') ax.set_ylabel('sin(x)') # 添加图例 ax.legend() # 保存图形 plt.savefig('line_plot.png') # 显示图形 plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
结果如下所示:
(2)多条折线图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
结果如下:
(3)循环实现多条折线图
import matplotlib.pyplot as plt # 定义数据 x = [1, 2, 3, 4, 5] y_list = [[1, 4, 9, 16, 25], [1, 2, 3, 4, 5], [5, 4, 3, 2, 1]] y_marker = ['*','o','^'] # 创建画布 plt.figure(figsize=(8, 4), dpi=100) # 循环绘制每一条折线图 for i in range(len(y_list)): plt.plot(x, y_list[i],marker=y_marker[i]) # 显示图形 plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
结果如下:
(4)实现不连续的折线图
- 1
- 2
- 3
- 4
- 5
结果如下:
(5)区域填充的折线图
- 1
- 2
- 3
- 4
- 5
- 6
结果如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
结果如下:
到这里折线图的介绍基本结束,大家可以根据不同属性进行不同折线图的实现。
2、柱状图的实现
简介:
柱状图(Bar chart)是一种用于展示不同类别或组之间数量或频率比较的图表。它通过绘制垂直或水平的矩形柱来表示数据,柱的高度表示数据的大小,可以帮助我们直观地比较不同类别或组之间的差异。 柱状图的主要特点和作用如下: 数据比较:柱状图可以清晰地显示不同类别或组之间的数量或频率差异,帮助我们比较和分析数据的大小、趋势和关系。 类别分布观察:通过柱状图,我们可以观察和分析不同类别或组的数据分布情况,了解每个类别或组的相对大小和比例。 异常值检测:柱状图可以帮助我们发现数据中的异常值,即与其他类别或组相比较为异常的数值。 排序和排序比较:通过对柱状图进行排序,我们可以更好地理解数据的排序情况,并比较不同类别或组之间的排序差异。 数据可视化:柱状图是一种直观、简洁的方式来展示数据的比较和分布情况,可以用于报告、演示和与他人分享数据。 柱状图常用于市场调研、销售分析、统计报告、民意调查等领域。通过观察和分析柱状图,我们可以更好地理解数据的差异和趋势,有助于做出更准确的决策和预测。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
(1)简单柱状图
import matplotlib.pyplot as plt x = ['A', 'B', 'C', 'D'] y = [10, 15, 7, 12] plt.bar(x, y) plt.xlabel('X轴') plt.ylabel('Y轴') plt.title('基本柱状图') plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
(2)多个柱状图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
(3)堆叠柱状图:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
(4)水平柱状图:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
(5)带误差线的柱状图:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
3、饼状图的实现
简介:
饼图(Pie chart)是一种用于展示不同类别或组之间数量或比例关系的图表。它通过绘制一个圆形,将圆形划分为不同扇形区域,每个扇形区域的角度大小表示该类别或组的比例或百分比。 饼图的主要特点和作用如下: 比例展示:饼图可以直观地展示不同类别或组之间的比例关系,通过扇形区域的大小来表示每个类别或组的占比。 百分比分布观察:通过饼图,我们可以观察和分析不同类别或组的百分比分布情况,了解每个类别或组的相对大小和比例。 类别占比比较:饼图可以帮助我们比较不同类别或组之间的占比差异,从而更好地理解数据的分布情况。 强调重点:通过调整饼图中某个扇形区域的大小,可以突出某个类别或组的重要性或特殊性。 数据可视化:饼图是一种直观、简洁的方式来展示数据的比例和分布情况,可以用于报告、演示和与他人分享数据。 饼图常用于市场份额分析、调查结果展示、资源分配比例等领域。通过观察和分析饼图,我们可以更好地理解数据的比例关系,有助于做出更准确的决策和预测。需要注意的是,饼图适用于展示相对比例或百分比的数据,不适合展示大量类别或组之间的细节差异。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
(1)基础实心饼状图
import matplotlib.pyplot as plt plt.figure(figsize=(6,3), dpi=100) labels = ['A', 'B', 'C', 'D'] sizes = [15, 30, 45, 10] plt.pie(sizes, labels=labels, shadow=True) plt.axis('equal') plt.legend() plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
(2)加强版实心饼状图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
(3)加强版环状饼状图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
(4)加强版环中环状饼状图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
(5)综合饼状图
from matplotlib import font_manager as fm from matplotlib import cm import pandas as pd shapes = ['Cross', 'Cone', 'Egg', 'Teardrop', 'Chevron', 'Diamond', 'Cylinder', 'Rectangle', 'Flash', 'Cigar', 'Changing', 'Formation', 'Oval', 'Disk', 'Sphere', 'Fireball', 'Triangle', 'Circle', 'Light'] values = [ 287, 383, 842, 866, 1187, 1405, 1495, 1620, 1717, 2313, 2378, 3070, 4332, 5841, 6482, 7785, 9358, 9818, 20254] s = pd.Series(values, index=shapes) labels = s.index sizes = s.values explode = (0.1,0,0,0,0,0,0,0,0,0,0,0,0,0.2,0,0,0,0.1,0) # "explode" , show the selected slice fig, axes = plt.subplots(figsize=(8,5),ncols=2,dpi=100) # 设置绘图区域大小 ax1, ax2 = axes.ravel() colors = cm.rainbow(np.arange(len(sizes))/len(sizes)) # colormaps: Paired, autumn, rainbow, gray,spring,Darks patches, texts, autotexts = ax1.pie(sizes, labels=labels, autopct='%1.0f%%',explode=explode, shadow=False, startangle=170, colors=colors, labeldistance=1.2,pctdistance=1.03, radius=0.4) # labeldistance: 控制labels显示的位置 # pctdistance: 控制百分比显示的位置 # radius: 控制切片突出的距离 ax1.axis('equal') # 重新设置字体大小 proptease = fm.FontProperties() proptease.set_size('xx-small') # font size include: ‘xx-small’,x-small’,'small’,'medium’,‘large’,‘x-large’,‘xx-large’ or number, e.g. '12' plt.setp(autotexts, fontproperties=proptease) plt.setp(texts, fontproperties=proptease) ax1.set_title('Shapes', loc='center') # ax2 只显示图例(legend) ax2.axis('off') ax2.legend(patches, labels, loc='center left') plt.tight_layout() # plt.savefig("pie_shape_ufo.png", bbox_inches='tight') plt.savefig('Demo_project_final.jpg') plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
4、箱型图的实现
简介:https://www.yingsoo.com/news/devops/44361.html
箱型图(Boxplot)是一种用于可视化数据分布和离群值的统计图表。它展示了数据的中位数、四分位数、上下边界和离群值,可以帮助我们了解数据的集中趋势、离散程度和异常值情况。 箱型图的主要组成部分如下: 箱体(Box):由数据的四分位数(上四分位数和下四分位数)组成,箱体的长度表示数据的离散程度。 中位数线(Median):表示数据的中位数,即将数据从小到大排列后的中间值。 上边界(Upper Whisker)和下边界(Lower Whisker):表示数据的上四分位数和下四分位数之外的边界值。 离群值(Outliers):超过上边界和下边界的数据点,被认为是异常值。 箱型图的作用包括: 数据分布观察:箱型图可以帮助我们了解数据的分布情况,包括数据的中位数、四分位数、离散程度等。 离群值检测:箱型图可以帮助我们识别数据中的离群值,即与其他数据点相比较为异常的数值。 数据比较:通过绘制不同组数据的箱型图,可以直观地比较它们的中位数、四分位数和离散程度,从而了解它们之间的差异。 数据可视化:箱型图是一种简洁而有效的方式来展示数据的统计特征,可以用于报告和演示。 通过观察箱型图,我们可以获得关于数据集的重要信息,从而更好地理解和分析数据。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
(1)简单箱型图
import matplotlib.pyplot as plt import numpy as np data1 = np.random.randn(100) data2 = np.random.randn(100) data3 = np.random.randn(100) data = [data1, data2, data3] labels = ['Group 1', 'Group 2', 'Group 3'] colors = [1, 0, 0.5] plt.boxplot(data, labels=labels, vert=True, patch_artist=True, boxprops=dict(facecolor=colors)) plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
(2)小提琴版箱型图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
(3)不同形状箱型图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
5、热力图的实现
简介:
热力图(Heatmap)是一种二维图表,通过使用颜色编码来表示数据的矩阵或表格中的值。热力图通常使用渐变色来展示数据的相对大小,较小的值使用较浅的颜色,较大的值使用较深的颜色。热力图可以直观地显示数据的分布和模式,帮助我们发现数据中的关联性和规律。 热力图的作用主要有以下几个方面: 可视化数据分布:热力图可以将数据的分布以直观的方式展示出来。通过观察颜色的变化,我们可以快速了解数据的整体分布情况,包括数据的集中程度、离散程度和梯度变化。 发现关联性和规律:热力图可以帮助我们发现数据中的关联性和规律。通过对比不同数据点之间的颜色差异,我们可以判断数据之间的相关性和趋势。例如,在生物学研究中,热力图可以用于显示基因表达水平的相关性。 强调重要信息:热力图可以突出显示数据中的重要信息。通过调整颜色映射和颜色条的设置,我们可以将感兴趣的数据区域或特定数值范围的数据突出显示,从而更加准确地传达数据的含义。 可视化矩阵数据:热力图特别适用于可视化矩阵或表格数据。通过将矩阵数据映射到热力图的颜色空间,我们可以更好地理解数据的结构和模式。 总之,热力图是一种直观、有效的数据可视化工具,可以帮助我们理解数据的分布、发现关联性和规律,并突出显示重要信息。它在各个领域的数据分析、探索和展示中都有广泛的应用。- 1
- 2
- 3
- 4
- 5
- 6
- 7
(1)简单热力图
import matplotlib.pyplot as plt import numpy as np plt.figure(figsize=(10,6), dpi=100) vegetables = ["cucumber", "tomato", "lettuce", "asparagus", "potato", "wheat", "barley"] farmers = ["Farmer Joe", "Upland Bros.", "Smith Gardening", "Agrifun", "Organiculture", "BioGoods Ltd.", "Cornylee Corp."] harvest = np.array([[0.8, 2.4, 2.5, 3.9, 0.0, 4.0, 0.0], [2.4, 0.0, 4.0, 1.0, 2.7, 0.0, 0.0], [1.1, 2.4, 0.8, 4.3, 1.9, 4.4, 0.0], [0.6, 0.0, 0.3, 0.0, 3.1, 0.0, 0.0], [0.7, 1.7, 0.6, 2.6, 2.2, 6.2, 0.0], [1.3, 1.2, 0.0, 0.0, 0.0, 3.2, 5.1], [0.1, 2.0, 0.0, 1.4, 0.0, 1.9, 6.3]]) plt.xticks(np.arange(len(farmers)), labels=farmers, rotation=45, rotation_mode="anchor", ha="right") plt.yticks(np.arange(len(vegetables)), labels=vegetables) plt.title("Harvest of local farmers (in tons/year)") for i in range(len(vegetables)): for j in range(len(farmers)): text = plt.text(j, i, harvest[i, j], ha="center", va="center", color="w") plt.imshow(harvest) plt.colorbar() plt.tight_layout() plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
(2)热力图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
6、直方图的实现
简介:
直方图(Histogram)是一种用于展示数据分布的统计图表。它将数据划分为若干个等宽的区间(也称为“箱子”或“柱子”),并统计每个区间内数据的频数或频率。直方图通过绘制矩形条来表示每个区间内数据的数量或频率,矩形条的高度表示数据的频数或频率。 直方图的作用主要有以下几个方面: 描述数据分布:直方图可以直观地展示数据的分布情况。通过观察直方图的形状、峰度和偏态,我们可以了解数据的中心趋势、离散程度和数据的偏向性。 检测数据异常和离群值:直方图可以帮助我们检测数据中的异常值和离群值。异常值是指与其他观测值明显不同的极端数值。在直方图中,异常值通常表现为与其他柱子明显不同高度的柱子。 比较不同组的数据:通过将多个直方图放在一起,我们可以直观地比较不同组的数据分布情况。这对于探索不同类别或组之间的差异非常有用。 确定数据分布的特征:直方图可以帮助我们确定数据的分布特征,例如是否符合正态分布、是否存在多峰分布等。这对于选择适当的统计方法和模型具有重要意义。 数据预处理:直方图可以帮助我们进行数据预处理,例如确定数据的分箱方式、选择合适的数据转换方法等。 总之,直方图是一种简单而常用的数据可视化工具,可以帮助我们了解数据的分布特征、检测异常值和离群值,并进行数据比较和预处理。它在数据分析、探索和展示中被广泛应用。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
(1)基础直方图
import matplotlib.pyplot as plt import numpy as np # 准备数据 data = np.random.randn(1000) # 绘制直方图 plt.hist(data) # 添加标签和标题 plt.xlabel('Value') plt.ylabel('Frequency') plt.title('Histogram') # 显示图表 plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
(2)一图多形
import matplotlib.pyplot as plt import numpy as np # 生成随机数据 np.random.seed(0) data1 = np.random.normal(0, 1, 1000) data2 = np.random.normal(2, 1, 800) data3 = np.random.normal(-2, 1, 1200) # 绘制直方图 plt.hist(data1, bins=30, alpha=0.5, label='Data 1') plt.hist(data2, bins=30, alpha=0.5, label='Data 2') plt.hist(data3, bins=30, alpha=0.5, label='Data 3') # 添加标签和标题 plt.xlabel('Value') plt.ylabel('Frequency') plt.title('Histogram Comparison') # 添加图例 plt.legend() # 显示图表 plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
(3)升级1
import matplotlib.pyplot as plt import numpy as np # 生成随机数据 np.random.seed(0) data = np.random.randn(1000) # 绘制直方图 plt.hist(data, bins=30, color='skyblue', edgecolor='black') # 添加标签和标题 plt.xlabel('Value') plt.ylabel('Frequency') plt.title('Histogram') # 显示图表 plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
(4)升级2
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
7、3D线框图的实现
简介:
3D线框图(3D Wireframe Plot)是一种用于可视化三维数据的图表。它通过绘制三维空间中的线段来表示数据的分布和形状。3D线框图通常由一系列连接的线段组成,这些线段连接了数据点或数据的边界。 3D线框图的作用主要有以下几个方面: 展示数据的形状和结构:3D线框图可以直观地展示数据的形状和结构。通过观察线段的分布和连接方式,我们可以了解数据在三维空间中的分布和形态。 比较不同组的数据:通过将多个3D线框图放在一起,我们可以比较不同组数据的形状和结构。这对于探索不同类别或组之间的差异非常有用。 可视化复杂关系:3D线框图可以用于可视化复杂的关系和模式。通过绘制多个线段和连接点,我们可以展示数据中的复杂关系,例如多个变量之间的相互作用。 辅助数据分析和决策:3D线框图可以帮助我们进行数据分析和决策。通过观察线段的长度、角度和形状,我们可以得到关于数据的直观感受,并从中提取有用的信息。 艺术和设计应用:3D线框图在艺术和设计领域也有广泛的应用。它可以用于创造具有立体感和空间感的图像和模型,为艺术作品和设计方案增添视觉效果。 总之,3D线框图是一种用于可视化三维数据的图表,可以展示数据的形状和结构,比较不同组的数据,可视化复杂关系,并辅助数据分析和决策。它在数据分析、科学研究、艺术和设计等领域都有广泛的应用。- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
(1)3D线框图
import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np # 生成数据 x = np.linspace(-5, 5, 50) # x轴坐标 y = np.linspace(-5, 5, 50) # y轴坐标 X, Y = np.meshgrid(x, y) Z = np.sin(np.sqrt(X**2 + Y**2)) # z轴坐标,这里使用sin函数生成一个曲面 # 创建一个三维坐标系 fig = plt.figure(figsize=(10,6), dpi=100) ax = fig.add_subplot(111, projection='3d') # 绘制线框图 ax.plot_wireframe(X, Y, Z) # 设置坐标轴标签 ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') # 显示图形 plt.show()- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
(2)3D散点图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
(3)3D条形图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
(4)3D曲面图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
(5)3D等高线图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
以上就是matplotlib的一些简单用法,大家可以参考一下,因为实现方法和实现的图形类型多种多样,这里列举远远不够,简单供大家参考!
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |