【Matplotlib 常见图表及应用】

一、matplotlib简介

matplotlib 是一个广泛使用的 Python 绘图库,它最初由 John D. Hunter 在2003年创建,matplotlib 的核心是绘图引擎,它提供了一套丰富的工具和函数,可以轻松创建高质量的二维图表和图形。这些图表包括但不限于:

  • 条形图(Bar Charts):用于展示和比较不同类别的数值。
  • 散点图(Scatter Plots):理想用于观察两个或多个变量间的关系。
  • 直方图(Histograms):用于展现数据的分布和频率。
  • 折线图(Line Charts):最适合表示数据随时间的变化。
  • 饼图(Pie Charts):用于显示各部分占整体的比例。
  • 箱形图(Box Plots):用于表示数据的统计分布。
  • 热力图(Heatmaps):理想用于表示变量间的相关性。

除了这些标准图表外,matplotlib 还提供了丰富的自定义选项,如颜色、标签、线型和布局等,使得每个图表都可以根据需要进行调整,以更好地适应不同的数据展示需求。

matplotlib 不仅支持多种输出格式,包括 PNG、PDF、SVG等,还可以与许多图形界面工具包一起使用,例如 Tkinter、wxPython、Qt等。用户可以轻松地将matplotlib图表集成到Python的桌面应用程序中。

二、matplotlib的安装和基本用法

1. 安装matplotlib

pip install matplotlib

2. 基本用法

import matplotlib.pyplot as plt

# 创建数据
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]

# 使用plot函数绘制线性图
plt.plot(x, y)

# 添加标题
plt.title('Simple Plot')

# 添加X轴和Y轴标签
plt.xlabel('x-axis')
plt.ylabel('y-axis')

# 显示图表
plt.show()

三、常见图表类型及其适用场景及其示例代码

1. 条形图(Bar Chart)

适用场景:用于展示不同类别间的比较。

代码示例:

import matplotlib.pyplot as plt

categories = ['Category A', 'Category B', 'Category C']
values = [23, 45, 56]

plt.bar(categories, values)
plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Bar Chart Example')
plt.show()

2. 直方图(Histogram)

适用场景:展示数据的分布情况。

代码示例:

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(1000)
plt.hist(data, bins=30)
plt.title('Histogram Example')
plt.show()

3. 散点图(Scatter Plot)

适用场景:查看变量之间的关系。

代码示例:

import matplotlib.pyplot as plt
import numpy as np

x = np.random.rand(50)
y = np.random.rand(50)

plt.scatter(x, y)
plt.title('Scatter Plot Example')
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.show()

4. 饼图(Pie Chart)

适用场景:展示各部分占整体的比例。

代码示例:

import matplotlib.pyplot as plt

sizes = [25, 35, 15, 25]
labels = ['Section A', 'Section B', 'Section C', 'Section D']

plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title('Pie Chart Example')
plt.axis('equal')  # Equal aspect ratio ensures the pie chart is circular.
plt.show()

5. 折线图(Line Chart)

适用场景:展示数据随时间的变化趋势。

代码示例:

import matplotlib.pyplot as plt

time = range(1, 6)
values = [1, 4, 6, 8, 4]

plt.plot(time, values)
plt.xlabel('Time')
plt.ylabel('Value')
plt.title('Line Chart Example')
plt.show()

6. 箱形图(Box Plot)

适用场景:展示数据的集中趋势和分散情况。

代码示例:

import matplotlib.pyplot as plt
import numpy as np

data = np.random.rand(10, 4)
plt.boxplot(data)
plt.title('Box Plot Example')
plt.show()

7. 热力图(Heatmap)

适用场景:展示变量间的相关性强度。

代码示例:

import matplotlib.pyplot as plt
import numpy as np

# 创建数据
data = np.random.rand(10, 10)

plt.imshow(data, cmap='hot', interpolation='nearest')
plt.title('Heatmap Example')
plt.show()

8. 3D 图表

适用场景:展示更复杂的数据关系。

代码示例:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 创建数据
x = np.random.standard_normal(100)
y = np.random.standard_normal(100)
z = np.random.standard_normal(100)

ax.scatter(x, y, z)
ax.set_title('3D Chart Example')
plt.show()

  • 31
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武帝为此

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值