python-matplotlib

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有所帮助。

后端开发标签