You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PyScript渲染多图表?解决图表数据复用重叠问题

解决PyScript中多图表渲染数据重叠的问题

问题根源

第二个图表复用首个图表数据导致重叠,核心原因是重复使用了同一个绘图实例(比如默认的matplotlib.pyplot全局实例),新数据直接追加到已有图表上,而非创建独立的新图表。

解决方案

方案1:为每个图表创建独立的Figure和Axes对象

通过plt.subplots()每次生成新的绘图容器,确保图表之间完全隔离:

import matplotlib.pyplot as plt
import numpy as np

# 渲染第一个图表
fig1, ax1 = plt.subplots()
x1 = np.linspace(0, 10, 100)
y1 = np.sin(x1)
ax1.plot(x1, y1)
ax1.set_title("Plot 1")
plt.show()

# 渲染第二个独立图表
fig2, ax2 = plt.subplots()
x2 = np.linspace(0, 10, 100)
y2 = np.cos(x2)
ax2.plot(x2, y2)
ax2.set_title("Plot 2")
plt.show()

方案2:绘制新图表前清除当前绘图状态

如果习惯使用全局plt对象,可在绘制新图表前调用plt.clf()清除当前所有绘图元素:

import matplotlib.pyplot as plt
import numpy as np

# 渲染第一个图表
x1 = np.linspace(0, 10, 100)
y1 = np.sin(x1)
plt.plot(x1, y1)
plt.title("Plot 1")
plt.show()

# 清除当前绘图状态,避免数据重叠
plt.clf()

# 渲染第二个图表
x2 = np.linspace(0, 10, 100)
y2 = np.cos(x2)
plt.plot(x2, y2)
plt.title("Plot 2")
plt.show()

关键注意点

  • 优先使用方案1,它能明确控制每个图表的独立状态,避免全局状态带来的隐性问题;
  • 若使用其他绘图库(如Plotly),逻辑类似:确保每个图表实例独立,不复用同一个对象。

内容的提问来源于stack exchange,提问作者Adn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 11:40:32