[英]Plotting python pandas dataframe with timestamps as indices for x-axis shows iterating numbers
有幾天,我嘗試使用 Pandas 和 Matplotlib 在我的 a 軸上顯示時間戳。 但出於某種原因,它總是顯示一些迭代數字,我對此無能為力。
這是我的代碼:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime
%matplotlib
plt.ion()
df = pd.read_csv('~/Development/ProgressionMovement/Data/03-02-pull/44#03-02_07-49_measurePoints.csv', index_col = 'timestamp', parse_dates = True)
for column in df.columns:
if column != 'timestamp':
df[column] = pd.to_numeric(df[column], downcast='float')
for index, row in df.iterrows():
for column in df.columns:
if column != 'timestamp':
df[column][index] = row[column] / 100
df.plot()
我已經嘗試了很多,設置 x_ticks,將索引類型轉換為其他內容等等(我不記得全部了)。 但我總是只看到這些數字。 充其量我只想看到分鍾和秒。
我究竟做錯了什么? 這不可能那么難。
csv 看起來像這樣:
情節是這樣的:
考慮到創建的圖形和 ax1 作為子圖,在 x 軸上繪制時間時我的首選行是:
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
plt.gca().xaxis.set_major_locator(mdates.AutoDateLocator())
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S'))
ax1.set_xticks(datas)
好吧,有一些提示“沃恩是上帝”讓我能夠顯示正確的 x 標簽。 代碼現在看起來像這樣:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import datetime
import matplotlib.dates as dates
%matplotlib
plt.ion()
df = pd.read_csv('~/Development/ProgressionMovement/Data/03-02-pull/44#03-02_07-49_measurePoints.csv', index_col = 'timestamp', parse_dates = True)
for column in df.columns:
if column != 'timestamp':
df[column] = pd.to_numeric(df[column], downcast='float')
for index, row in df.iterrows():
for column in df.columns:
if column != 'timestamp':
df[column][index] = row[column] / 100
ax=plt.gca()
ax.set_xticks(df.index)
xfmt = dates.DateFormatter('%M:%S:%f')
ax.xaxis.set_major_formatter(xfmt)
df.plot()
有點奇怪,但是使用交互式繪圖工具,我必須運行最后一個代碼塊兩次才能顯示秒數。 否則它會顯示我的天、小時、分鍾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.