【问题标题】:Matplotlib can only plot scatter graphMatplotlib 只能绘制散点图
【发布时间】:2017-09-29 17:17:42
【问题描述】:

[Python 2.7.12]

[Matplotlib 1.5.1]

每个扫描周期我的代码都会产生一个“最高”分数。我想随着时间的推移绘制性能。我已将代码简化为以下示例:

import matplotlib.pyplot as plt
from matplotlib import lines
import random
count = 1

plt.axis([0, 1000, 0, 100])
plt.ion()

while True:
    count += 1
    a=random.randint(1, 50)
    plt.plot(count, a,'xb-')
    plt.pause(0.05)

plt.show()

我的目标是制作折线图。问题是无论我将线条样式设置为什么,它都不会生效。它只绘制散点图。但是,我可以更改它是一个点还是一个“X”标记。

或者是分数是“情节和忘记”的事实,所以它没有什么可借鉴的?

编辑:绘图将实时完成

【问题讨论】:

  • 你是想做动画,还是只需要折线图?
  • 实时绘图(已编辑的原始问题)。
  • 我不确定解决方案,但问题是acount 是标量,所以当plot 被调用时,它正在绘制一个点,并调用@987654325 @多次不会连接点,因为会生成不同的线实例,

标签: python python-2.7 matplotlib scatter linegraph


【解决方案1】:

您至少需要 2 个点来绘制一条线。您可以在每个步骤中存储和使用之前的状态。

import matplotlib.pyplot as plt
from matplotlib import lines
import random

x = 1

plt.axis([0, 1000, 0, 100])
plt.ion()

y_t1 = random.randint(1, 50)
plt.plot(1, y_t1, 'xb')
plt.pause(0.05)

while True:
    x += 1
    y_t2 = random.randint(1, 50)
    plt.plot([x - 1, x], [y_t1, y_t2], 'xb-')
    y_t1 = y_t2
    plt.pause(0.05)

plt.show()

【讨论】:

    猜你喜欢
    • 2018-06-23
    • 2021-10-14
    • 2023-03-13
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    相关资源
    最近更新 更多