可变日期滴答声 matplotlib 动画
Variable date ticks matplotlib animation
我目前每 2 秒从 CSV 文件中读取数据点并使用 matplotlib Funcanimation
绘制它。但是,x 轴上的日期刻度相互堆叠,因此不可读。我正在寻找一种有效的方式来排列 x-ticks,这样它们就不会堆叠在一起。
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()
假设您的数据是日期格式,例如np.datetime64,你试过the documentation的ConciseDateFormatter吗?
对于您的示例,这类似于
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()
我目前每 2 秒从 CSV 文件中读取数据点并使用 matplotlib Funcanimation
绘制它。但是,x 轴上的日期刻度相互堆叠,因此不可读。我正在寻找一种有效的方式来排列 x-ticks,这样它们就不会堆叠在一起。
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()
假设您的数据是日期格式,例如np.datetime64,你试过the documentation的ConciseDateFormatter吗?
对于您的示例,这类似于
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()