当添加新数据点时,如何避免重置python matplotlib实时图表缩放?

时间:2015-09-23 18:57:14

标签: python matplotlib zooming

我正在使用Live仪表板来跟踪主机和其他几个关键性能指标的系统性能。但是,当我放大并添加新数据点时,缩放会将视图重置为主视图。 Illustration Here就是我所说的一个例子。

左图是历史数据,右图是具有更高粒度的相关数据。我删除了大部分代码格式和SQL信息作为预防措施。我概述了用于执行实时图表的代码。正如我所说的,我希望直接添加数据点,而不会将视图重置为home。

任何方向或帮助都会受到赞赏,因为我无法找到有关此问题的任何内容。

curs = conn.cursor()

fig = plt.figure()


def graph_dash():
    fig.clf()
    graph_array1 = []
    graph_array2 = []
    graph_array3 = []
    graph_array4 = []

    # host dash
    graph_array5 = []
    graph_array6 = []
    graph_array7 = []
    graph_array8 = []
    graph_array9 = []
    graph_array10 = []

    # selects data and formats date into usable format
    # defines charts    

def animate(i):
    graph_dash()

ani = animation.FuncAnimation(fig, animate, frames=200, interval=300000)
plt.show()
curs.close()
conn.close()

以下是我用来绘制10个数组中每个数组的内容

ax1 = plt.subplot2grid((6, 5), (0, 0), rowspan=3, colspan=3)
plt.plot_date(x=date_stamp1, y=value1, fmt='-', label='value', linewidth=1, rasterized=True)
plt.ylabel('Total Duration (m/s)', fontsize=12)
plt.title('CDETS LIVE MONITOR')
ax1.tick_params(axis='y', labelsize=12)
ax1.grid(True)
ax1.set_ylim([0, 1000000])

我从SQL中提取数据(用*替换dbname)并准备日期:

    for row in curs.execute('SELECT * FROM * ORDER BY CETS_DATE ASC'):
    used_data = str(row).replace('None', '').replace('u\'', '').replace("'", "").replace('-04:00', '')
    split_data = used_data.split(',')
    graph_array_append1 = split_data[8].replace('T', ' ').replace(')', '') + ',' + split_data[3]
    graph_array1.append(graph_array_append1)

date_stamp1, value1 = np.loadtxt(graph_array1, delimiter=',', unpack=True,
                                 converters={0: mdates.strpdate2num(' %Y-%m-%d %H:%M:%S')})

0 个答案:

没有答案