用Python的matplotlib库动态显示不断增长的数据

本文介绍如何使用Python的matplotlib库动态显示不断增长的数据。通过创建figure和axis对象,清空旧数据,设置坐标轴范围,添加网格,以及利用plot函数绘制新数据,实现了数据变化的实时展示。在实验中观察到,只有一个窗口能动态显示,而另一个窗口保持静态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"""
Created on Mon Dec 07 16:34:10 2015

@author: SuperWang
"""

import matplotlib.pyplot as plt
import numpy as np

fig,ax=plt.subplots()
fig2,ax2=plt.subplots()


y1=[]
y2=[]

for i in range(50):
    y1.append(np.sin(i))
    y2.append(np.cos(i))
    ax.cla()
    ax.set_title("Loss")
    ax.set_xlabel("Iteration")
    ax.set_ylabel("Loss")
    ax.set_xlim(0,55)
    ax.set_ylim(-1,1)
    ax.grid()
    ax.plot(y1,label=
<think>好的,用户想学习如何使用PythonMatplotlib进行数据可视化,特别是需要示例和教程。我需要根据提供的引用内容来构建一个清晰的回答。首先,我应该先介绍Matplotlib的基本使用方法,然后给出具体的示例代码,比如折线图、散点图、柱状图等,确保每个步骤都有解释。同时,要遵循用户给出的格式要求,行内公式用$...$,独立公式用$$...$$。可能还需要生成相关问题,比如如何自定义样式、保存图表等。要注意引用标记的正确添加,比如在提到折线图示例时加上[^1]。此外,用户提供的引用中有三个来源,需要确保引用标识正确对应。可能还需要检查代码语法是否正确,比如是否正确导入,使用subplots等。最后,生成的相关问题应该覆盖用户可能感兴趣的扩展内容,比如与其他的整合或者动态可视化。现在开始组织内容,先介绍Matplotlib,然后分步骤讲解安装、导入、基本绘图流程,再给出不同图表类型的示例,每个示例后解释代码,最后总结应用场景并添加相关问题。</think>以下是如何使用Python Matplotlib进行数据可视化的详细教程,包含基础语法和实用示例: ### 一、Matplotlib基础 1. **安装与导入** ```python # 安装命令 pip install matplotlib # 导入标准写法 import matplotlib.pyplot as plt ``` 2. **绘图基本流程** - 创建画布:`plt.figure()` - 绘制图形:调用绘图函数(如`plot()`) - 设置样式:添加标题、标签、网格等 - 展示/保存:`plt.show()`或`plt.savefig()` ### 二、核心图表绘制示例 #### 1. 折线图(基础示例) ```python x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] fig, ax = plt.subplots(figsize=(8,4)) # 创建8x4英寸画布 ax.plot(x, y, linestyle='--', color='#FF6B6B', marker='o', label='线性增长') ax.set_title("折线图示例", fontsize=14) ax.set_xlabel("X轴", fontsize=12) ax.set_ylabel("Y轴", fontsize=12) ax.legend() plt.grid(True) plt.show() ``` ![示例图][^1] #### 2. 散点图(带回归线) ```python import numpy as np # 生成随机数据 np.random.seed(42) x = np.random.rand(50) * 10 y = 2 * x + 1 + np.random.randn(50) # 绘制散点图 plt.scatter(x, y, c='green', alpha=0.6) # 添加回归线 m, b = np.polyfit(x, y, 1) plt.plot(x, m*x + b, color='red') plt.title("带回归线的散点图") plt.xlabel("自变量X") plt.ylabel("因变量Y") plt.show() ``` #### 3. 柱状图(分组显示) ```python labels = ['A', 'B', 'C', 'D'] men_means = [20, 34, 30, 35] women_means = [25, 32, 34, 20] x = np.arange(len(labels)) width = 0.35 fig, ax = plt.subplots() rects1 = ax.bar(x - width/2, men_means, width, label='男性') rects2 = ax.bar(x + width/2, women_means, width, label='女性') ax.set_ylabel('分数') ax.set_title('分组柱状图') ax.set_xticks(x) ax.set_xticklabels(labels) ax.legend() plt.show() ``` ### 三、高级功能 #### 1. 子图布局 ```python fig = plt.figure(figsize=(10,6)) # 创建2x2子图布局 ax1 = plt.subplot2grid((2,2), (0,0)) ax2 = plt.subplot2grid((2,2), (0,1)) ax3 = plt.subplot2grid((2,2), (1,0), colspan=2) ax1.plot([1,2,3], [2,4,1]) ax2.scatter(np.random.rand(10), np.random.rand(10)) ax3.hist(np.random.randn(1000), bins=30) plt.tight_layout() plt.show() ``` #### 2. 3D图形绘制 ```python from mpl_toolkits.mplot3d import Axes3D 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, c=z, cmap='viridis') ax.set_xlabel('X轴') ax.set_ylabel('Y轴') ax.set_zlabel('Z轴') plt.show() ``` ### 四、样式自定义 ```python plt.style.use('ggplot') # 使用预定义样式 x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x), label='sin(x)') plt.plot(x, np.cos(x), label='cos(x)') plt.title("三角函数曲线", fontdict={'fontsize':14, 'color':'darkblue'}) plt.xlabel("角度(弧度)", fontproperties='SimHei') # 中文字体设置 plt.legend() plt.show() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值