变量日期标记matplotlib动画

pes8fvy9  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(302)

我目前每2秒从csv文件中读取数据点,并使用matplotlib进行打印 Funcanimation . 但是,x轴上的日期标记相互叠加,因此无法读取。我正在寻找一种有效的方法来排列x记号,这样它们就不会叠在一起了。

import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import pandas as pd

def animate(i):
    data = pd.read_csv('data.csv')
    x = data.iloc[:,0]
    y4 = data.iloc[:,4]
    plt.cla()
    plt.plot(x, y4, label = "value")

    plt.legend(loc= 'upper left')
    plt.tight_layout()

ani = FuncAnimation(plt.gcf(), animate, interval = 2000)

plt.show()

xoefb8l8

xoefb8l81#

假设您的数据采用日期格式,例如np.datetime64,您是否尝试过文档中的ConcipleFormatter?
对于你的例子,这可能是

import matplotlib.dates as mdates
def animate(i):
    data = pd.read_csv('data.csv')
    x = data.iloc[:,0]
    y4 = data.iloc[:,4]
    plt.cla()

    ax = plt.gca()
    locator = mdates.AutoDateLocator(minticks=3, maxticks=7)
    formatter = mdates.ConciseDateFormatter(locator)
    ax.xaxis.set_major_locator(locator)
    ax.xaxis.set_major_formatter(formatter)

    plt.plot(x, y4, label = "value")

    plt.legend(loc= 'upper left')
    plt.tight_layout()

相关问题