1.介绍Matplotlib
Matplotlib是Python中最常用的绘图库之一。它提供了各种各样的绘图选项,例如线图、散点图、条形图等。它不仅能够制作出高质量的图表,还能够自定义样式、设置标签等,使数据更直观。
import matplotlib.pyplot as plt
import numpy as np
#创建数据
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
c,s = np.cos(x),np.sin(x)
#创建绘图对象和绘图区域
plt.figure(figsize=(8,6), dpi=80)
plt.subplot(1,1, 1)
#绘制cos和sin曲线
plt.plot(x, c, color="blue", linewidth=1.5, linestyle="-", label="cos")
plt.plot(x, s, color="green", linewidth=1.5, linestyle="-", label="sin")
#添加图例
plt.legend(loc='upper left', frameon=True)
#设置坐标轴范围
plt.xlim(-4.0,4.0)
plt.ylim(-1.0,1.0)
#设置刻度标签
plt.xticks(np.linspace(-4,4,9,endpoint=True))
plt.yticks(np.linspace(-1,1,5,endpoint=True))
#在坐标轴上添加网格线
plt.grid()
#显示图形
plt.show()
2.数据可视化
2.1 折线图
折线图是Matplotlib中最常见的图表类型之一。折线图适用于显示与时间相关的数据或线性相关的数据。在Matplotlib中,可以使用plot
函数创建折线图。
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 1000)
y = np.sin(x)
# 创建绘图对象和绘图区域
plt.figure(figsize=(8, 6), dpi=80)
plt.subplot(1, 1, 1)
# 绘制折线图
plt.plot(x, y, color='blue', linewidth=2.0, linestyle='--')
# 设置坐标轴范围
plt.xlim((0, 10))
plt.ylim((-1.2, 1.2))
# 设置刻度标签
plt.xticks(np.linspace(0, 10, 11))
plt.yticks(np.linspace(-1, 1, 5))
# 在坐标轴上添加网格线
plt.grid()
# 添加标题和标签
plt.title('Sin Curve')
plt.xlabel('Time')
plt.ylabel('Amplitude')
# 显示图形
plt.show()
2.2 散点图
散点图通常用于比较两个变量的值,可以检测数据中的异常值。在Matplotlib中,可以使用scatter
函数创建散点图。
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.randn(1000)
y = np.random.randn(1000)
# 创建绘图对象和绘图区域
plt.figure(figsize=(8, 6), dpi=80)
plt.subplot(1, 1, 1)
# 绘制散点图
plt.scatter(x, y, color='blue', s=15, alpha=0.5)
# 设置坐标轴范围
plt.xlim((-4, 4))
plt.ylim((-4, 4))
# 在坐标轴上添加网格线
plt.grid()
# 添加标题和标签
plt.title('Scatter Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图形
plt.show()
2.3 条形图
条形图通常用于比较多个变量的值。在Matplotlib中,可以使用bar
函数创建条形图。
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = ['A', 'B', 'C', 'D', 'E']
y = [10, 24, 36, 40, 39]
# 创建绘图对象和绘图区域
plt.figure(figsize=(8, 6), dpi=80)
plt.subplot(1, 1, 1)
# 绘制条形图
plt.bar(x, y, color='blue')
# 在每个条形上显示数值
for xx, yy in zip(x, y):
plt.text(xx, yy + 1, str(yy), ha='center', fontsize=11)
# 在坐标轴上添加网格线
plt.grid()
# 添加标题和标签
plt.title('Bar Plot')
plt.xlabel('Category')
plt.ylabel('Value')
# 显示图形
plt.show()
2.4 饼图
饼图适用于比较数据中各个部分的占比。在Matplotlib中,可以使用pie
函数创建饼图。
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['red', 'green', 'blue', 'yellow']
# 创建绘图对象和绘图区域
plt.figure(figsize=(8, 6), dpi=80)
plt.subplot(1, 1, 1)
# 绘制饼图
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=90)
# 添加标题
plt.title('Pie Chart')
# 显示图形
plt.show()
3.数据分析
3.1 数据可视化
在进行数据分析之前,我们需要对数据进行可视化,以便更好地理解数据。在以下代码中,我们使用了一些函数来生成随机数据并绘制它们的折线图和散点图。
在以下示例中,temperature设置为0.6
import matplotlib.pyplot as plt
import numpy as np
# 设置随机数种子
np.random.seed(0)
# 生成随机数据
x = np.linspace(0, 10, 1000)
y1 = np.sin(x)
y2 = np.random.randn(1000)
# 创建绘图对象和绘图区域
fig, ax = plt.subplots(figsize=(8, 6), dpi=80)
# 绘制折线图
ax.plot(x, y1, color='blue', linewidth=2.0, linestyle='--')
# 设置第二个y轴
ax2 = ax.twinx()
# 绘制散点图
ax2.scatter(x, y2, color='red', s=15, alpha=0.5)
# 添加标题和标签
ax.set_title('Data Visualization')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis 1')
ax2.set_ylabel('Y-axis 2')
# 将图例添加至子图
ax.legend(['Sin Curve'], loc='upper right')
ax2.legend(['Random Data'], loc='lower right')
# 显示图形
plt.show()
3.2 数据分析
在以下代码中,我们使用了一些函数来生成含有噪声的随机数据,并使用线性回归模型拟合数据,然后绘制拟合曲线和散点图。
在以下示例中,temperature设置为0.6
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
# 设置随机数种子
np.random.seed(0)
# 生成随机数据
x = np.linspace(0, 10, 1000)
y = 2 * x + 1 + np.random.randn(1000) * 0.5
# 使用线性回归模型拟合数据
reg = LinearRegression().fit(x.reshape(-1, 1), y)
print(f'The slope of the fitted line is {reg.coef_[0]:.2f} and the intercept is {reg.intercept_:.2f}.')
# 创建绘图对象和绘图区域
fig, ax = plt.subplots(figsize=(8, 6), dpi=80)
# 绘制散点图
ax.scatter(x, y, color='blue', s=15, alpha=0.5)
# 绘制拟合曲线
ax.plot(x, reg.predict(x.reshape(-1, 1)), color='red', linewidth=2.0)
# 添加标题和标签
ax.set_title('Data Analysis')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
# 显示图形
plt.show()
4.结论
Python-Matplotlib是一款功能强大,易于使用的绘图库,可以用于数据可视化和数据分析。在本文中,我们介绍了Matplotlib中常见的四种类型的图表,并通过代码示例详细讲解了如何使用Matplotlib创建这些图表。我们还演示了如何在数据可视化和数据分析中使用Matplotlib。希望本文对你学习Matplotlib有所帮助。