在实时绘图中添加额外的x轴

时间:2018-02-15 13:21:58

标签: python matplotlib

我正在尝试将第二个x轴添加到下面脚本生成的绘图中。情节不断更新:

import numpy as np
import matplotlib.pyplot as plt


#turn interactive mode on
plt.ion()

def GetTestData():
    data = []
    for i in range(0, 2048):
        data.append(np.random.random_sample() * i)
    return data

for i in range(0, 100):
    plt.clf()
    plt.plot(GetTestData())
    plt.show()
    plt.pause(0.05)

我发现这个Stack Overflow solution关于如何添加一个额外的轴,但是当我尝试在我的脚本中使用该解决方案时,我得到了许多图而不是刷新一个图:

import numpy as np
import matplotlib.pyplot as plt


#turn interactive mode on
plt.ion()

def GetTestData():
    data = []
    for i in range(0, 2048):
        data.append(np.random.random_sample() * i)
    return data

for i in range(0, 100):
    plt.clf()

    fig = plt.figure()
    ax1 = fig.add_subplot(111)
    ax2 = ax1.twiny()

    ax1.plot(GetTestData())

    ax2.plot(range(100), np.ones(100)) # Create a dummy plot
    ax2.cla()

    plt.show()
    plt.pause(0.05)

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:0)

我认为你需要在那里保持沉默:

...
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twiny()

ax1.plot(GetTestData())
hold(True)
ax2.plot(range(100), np.ones(100)) # Create a dummy plot
ax2.cla()

答案 1 :(得分:0)

所以我想出的最终解决方案是只更新循环中相同轴对象的y_data。

docker-compose up -d db