15.1 安装Matplotlib  

Matplotlib是Python最流行的2D绘图库,用于生成折线图、散点图、直方图等,适用于数据探索和结果展示。  

安装命令:  

pip install matplotlib

验证安装:  

import matplotlib.pyplot as plt
print(plt.__version__)  # 应输出版本号(如3.7.1)

15.2 绘制简单的折线图  

折线图用于展示数据随时间或其他连续变量的变化趋势,核心函数是plot()。  

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y, linewidth=2)  # 绘制折线,设置线条粗细
plt.title("Simple Line Chart", fontsize=14)  # 标题
plt.xlabel("X-axis", fontsize=12)           # X轴标签
plt.ylabel("Y-axis", fontsize=12)           # Y轴标签
plt.grid(True)                              # 显示网格
plt.show()

关键点:  

- linewidth控制线条粗细(默认1)。  

- fontsize调整标签字体大小。  

- 必须调用plt.show()才会显示图表。  

15.2.4 使用scatter()绘制散点图并设置样式  

散点图用于展示两个变量之间的关系,适合发现数据分布或聚类。  

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.scatter(x, y, s=100, c='red', edgecolor='black', marker='o')
plt.title("Scatter Plot Example")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

参数解析:  

- s:点的大小。  

- c:颜色(支持名称、RGB或颜色映射)。  

- edgecolor:点的边框颜色。  

- marker:形状(如o圆形、^三角形)。  

15.2.8 使用颜色映射(Colormap)  

颜色映射通过颜色深浅反映数据值的差异,常用于热力图或分类数据。  

x = list(range(1, 101))
y = [i**2 for i in x]
plt.scatter(x, y, c=y, cmap=plt.cm.Blues, edgecolor='none', s=40)
plt.colorbar()  # 显示颜色条
plt.show()

关键点:  

- cmap指定颜色映射(如Blues、viridis)。  

- colorbar()添加颜色条,显示数值与颜色的对应关系。  

15.3 随机选择与RandomWalk类  

随机游走(Random Walk)模拟随机过程,常用于金融、物理等领域。通过类封装实现多次模拟。 

from random import choice

class RandomWalk:
    def __init__(self, num_points=5000):
        self.num_points = num_points
        self.x = [0]
        self.y = [0]

    def fill_walk(self):
        while len(self.x) < self.num_points:
            x_step = choice([1, -1]) * choice([0, 1, 2])
            y_step = choice([1, -1]) * choice([0, 1, 2])
            # 计算新位置
            new_x = self.x[-1] + x_step
            new_y = self.y[-1] + y_step
            self.x.append(new_x)
            self.y.append(new_y)

# 生成并绘制随机游走
rw = RandomWalk()
rw.fill_walk()
plt.plot(rw.x, rw.y, linewidth=1)
plt.show()

优化建议:  

- 使用渐变色反映游走顺序:plt.scatter(rw.x, rw.y, c=range(rw.num_points), cmap='Blues')  

- 隐藏坐标轴:plt.axis('off')  

15.4 使用Plotly模拟掷骰子  

Plotly支持交互式图表,适合动态数据展示(如直方图)。  

1. 安装Plotly:  

pip install plotly

2. 模拟掷骰子:  

from random import randint

   class Die:
       def __init__(self, sides=6):
           self.sides = sides
       
       def roll(self):
           return randint(1, self.sides)

   # 掷骰子1000次
   die = Die()
   results = [die.roll() for _ in range(1000)]

3.模拟绘制直方图

import plotly.express as px
   fig = px.histogram(results, nbins=6, title="Dice Roll Results")
   fig.update_layout(xaxis_title="Result", yaxis_title="Frequency")
   fig.show()

优势:  

- 鼠标悬停显示具体数值。  

- 支持缩放、拖动等交互操作。  

15.5 小结  

本章核心技能:  

1. 折线图:分析数据趋势。  

2. 散点图:探索变量相关性。  

3. 随机游走:模拟与可视化结合。  

4. Plotly:交互式图表提升展示效果。  

 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐