我正在尝试绘制一些数据,但是以某种方式在x轴上显示的数据不是正确的格式。取而代之的是2018年1月3日等我收到0028-02-23。从csv文件获取数据时,加载数据时已经加载了正确的格式。
此外,我想在不同的子图中绘制数据,这意味着子图1中的值组,子图2中的valuegroub B等。
图看起来像
类似的代码:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter
csv_loader = pd.read_csv('C:/Users/micha/Desktop/Test.csv', encoding='cp1252', parse_dates=['Date'], sep=';', index_col=0).dropna()
fig, ax = plt.subplots()
csv_loader.groupby('Valuegroup').plot(x='Date', y='Value', ax=ax, legend=False, kind='line')
plt.grid(True)
myFmt = DateFormatter("%Y-%m-%d")
ax.xaxis.set_minor_formatter(myFmt)
plt.show()
数据如下:
Calcgroup;Valuegroup;id;Date;Value Group1;A;1;20080103;0.1 Group1;A;1;20080104;0.3 Group1;A;1;20080107;0.5 Group1;A;1;20080108;0.9 Group1;B;1;20080103;0.5 Group1;B;1;20080104;1.3 Group1;B;1;20080107;2.0 Group1;B;1;20080108;0.15 Group1;C;1;20080103;1.9 Group1;C;1;20080104;2.1 Group1;C;1;20080107;2.9 Group1;C;1;20080108;0.45
并且在导入后,我具有以下数据框:
csv_loader
Valuegroup id Date Value
Calcgroup
Group1 A 1 2008-01-03 0.10
Group1 A 1 2008-01-04 0.30
Group1 A 1 2008-01-07 0.50
Group1 A 1 2008-01-08 0.90
Group1 B 1 2008-01-03 0.50
Group1 B 1 2008-01-04 1.30
Group1 B 1 2008-01-07 2.00
Group1 B 1 2008-01-08 0.15
Group1 C 1 2008-01-03 1.90
Group1 C 1 2008-01-04 2.10
Group1 C 1 2008-01-07 2.90
Group1 C 1 2008-01-08 0.45
答案 0 :(得分:0)
尝试此解决方案
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter
import matplotlib.dates as mdates
csv_loader = pd.read_csv('C:/Users/micha/Desktop/Test.csv', encoding='cp1252', parse_dates=['Date'], sep=';', index_col=0)
fig, ax = plt.subplots()
csv_loader.groupby('Valuegroup').plot(x='Date', y='Value', ax=ax, legend=False, kind='line')
plt.grid(True)
myFmt = DateFormatter('%Y-%m-%d')
ax.xaxis.set_major_locator(mdates.YearLocator())
ax.xaxis.set_major_formatter(myFmt)
fig.autofmt_xdate()
plt.show()
答案 1 :(得分:0)