Matplotlib matshow()和labels()方法
Matplotlib是一个python编程语言的绘图库,可以用于制作各种静态、动态、交互式和印刷质量的图形。Matplotlib最早是由John D. Hunter于2003年发起的,现在是一个活跃的开源社区的一部分。
Matplotlib是Python中最常用的数据可视化库之一,它具有灵活的绘制功能和漂亮的绘图风格。Matplotlib可以绘制的图形种类非常丰富,例如折线图、散点图、柱状图、等高线图、饼图、3D图等,几乎可以满足你在数据可视化方面的所有需求。
阅读更多:Matplotlib 教程
matplotlib如何使用
Matplotlib是Python的一部分,可以使用pip命令轻松安装。在使用Matplotlib之前,需要先导入Matplotlib库。你可以使用命令行或者编辑器中的命令导入Matplotlib库。
在Python中,Matplotlib由pyplot模块和面向对象模块两部分组成。pyplot是Matplotlib绘图的首选方式,它允许用户像MATLAB一样操作数据和绘图命令。下面我们来看一些简单的Matplotlib图形和代码示例:
折线图
折线图是一种以折线显示数据趋势的图表。例如,下面的图表是展示了2001年至2011年间婴儿出生率的折线图。
import matplotlib.pyplot as plt
years = [2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011]
births = [4.0, 4.2, 4.3, 4.5, 4.5, 4.6, 4.6, 4.2, 3.9, 3.8, 3.7]
plt.plot(years, births)
plt.title('US Birth Rate')
plt.xlabel('Years')
plt.ylabel('Births per 1000 Population')
plt.show()
在上面的代码中,我们将年份(years)和生育率(births)传递给plt.plot()函数。plt.plot()函数创建了一个折线图,并将其显示在屏幕上。我们使用plt.title()、plt.xlabel()和plt.ylabel()函数为图表添加了标题、x轴标签和y轴标签。最后我们使用plt.show()函数将图表显示在屏幕上。
散点图
散点图是一种展示数据点分布情况或者传达变量之间关系的图表。例如,下面的散点图展示了汽车排量与汽车油耗之间的关系。
import matplotlib.pyplot as plt
displacement = [1.6, 2.0, 1.8, 4.2, 3.7, 2.5, 3.6, 3.2, 2.7, 1.6, 2.4, 1.8, 3.9, 4.2, 4.0, 2.0, 2.8, 3.0]
mpg = [15, 20, 19, 7, 11, 17, 13, 14, 15, 22, 18, 21, 9, 8, 10, 20, 16, 13]
plt.scatter(displacement, mpg)
plt.title('Fuel Efficiency vs Displacement')
plt.xlabel('Displacement (L)')
plt.ylabel('MPG (Miles Per Gallon)')
plt.show()
在上面的代码中,我们将排量(displacement)和燃油效率(mpg)传递给plt.scatter()函数,该函数绘制了一个散点图,并将其显示在屏幕上。我们使用plt.title()、plt.xlabel()和plt.ylabel()函数为图表添加了标题、x轴标签和y轴标签。最后我们使用plt.show()函数将图表显示在屏幕上。
条形图
条形图是用于比较项目之间差异的图表,每个项目用一个条形表示。例如,下面的条形图展示了某个公司2019年第一季度的营收和利润情况。
import matplotlib.pyplot as plt
quarters = ['Q1', 'Q2', 'Q3', 'Q4']
revenue = [20, 25, 30, 35]
profit = [5, 7, 10, 12]
plt.bar(quarters, revenue, label='Revenue')
plt.bar(quarters, profit, label='Profit')
plt.title('Q1 2019 Revenue and Profit')
plt.xlabel('Quarter')
plt.ylabel('Amount in millions ($)')
plt.legend()
plt.show()
在上面的代码中,我们将季度(quarters)、营收(revenue)和利润(profit)传递给plt.bar()函数,该函数创建了一个条形图并将其显示在屏幕上。我们使用plt.title()、plt.xlabel()和plt.ylabel()函数为图表添加了标题、x轴标签和y轴标签。我们使用plt.legend()函数为图表添加了图例,并使用plt.show()函数将图表显示在屏幕上。
等高线图
等高线图是一种用于显示二维函数表面的图表,其中等高线表示函数表面的高度。例如,下面的等高线图展示了二维高斯分布函数。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
delta = 0.025
x = np.arange(-3.0, 3.0, delta)
y = np.arange(-3.0, 3.0, delta)
X, Y = np.meshgrid(x, y)
Z = np.sqrt(X**2 + Y**2)
plt.contour(X, Y, Z, cmap='cool')
plt.colorbar()
plt.show()
在上面的代码中,我们使用numpy库和meshgrid函数创建了一个二维网格,其中包含了x和y轴的所有坐标点。我们使用X和Y网格计算了高斯分布函数的高度,并将结果存储在Z数组中。然后我们使用plt.contour()函数创建了等高线,并使用plt.colorbar()函数添加了一个颜色条来显示等高线的高度。
matshow方法
Matplotlib中的matshow()方法用于绘制矩阵图。矩阵图是一个表示矩阵数据的图形。矩阵图中每一个单元格的颜色表示该单元格的数值大小。
下面是一个简单的例子,展示matshow()方法如何使用:
import numpy as np
import matplotlib.pyplot as plt
data = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
plt.matshow(data)
plt.colorbar()
plt.show()
在上面的代码中,我们创建了一个3×3的矩阵并将其传递给plt.matshow()函数。该函数绘制了矩阵图并将其显示在屏幕上,使用plt.colorbar()函数添加了一个颜色条来表示每个单元格的数值。
labels方法
Matplotlib中的labels方法可以用于为图形添加标签。标签可以用于标识轴、图例、数据点等。
下面是一个简单的例子,展示如何在柱状图中为每个柱添加标签:
import numpy as np
import matplotlib.pyplot as plt
labels = ['A', 'B', 'C', 'D', 'E']
values = [23, 45, 67, 89, 12]
plt.bar(labels, values)
for i in range(len(values)):
plt.text(i, values[i], values[i], ha='center', va='bottom')
plt.title('Bar Chart with Labels')
plt.xlabel('Category')
plt.ylabel('Value')
plt.show()
在上面的代码中,我们创建了一个包含5个标签和相应数值的列表。我们使用plt.bar()函数创建了一个柱状图,并使用for循环为每个柱添加标签。在for循环中,我们使用plt.text()函数在每个柱的顶部居中添加数值标签。
总结
总之,Matplotlib是一个强大的Python绘图库,支持绘制多种不同类型的图表和自定义图表。matshow()和labels()方法是Matplotlib中常用的两种方法之一。matshow()方法可用于绘制矩阵图,而labels()方法可用于为图形添加标签。无论你是在数据科学,商业,工程或任何领域,使用Matplotlib都可以让你的数据清晰地传达和可视化。
极客教程