我正在尝试在熊猫中绘制数据框。我正在使用的csv文件是:
Time,Total cpu%,Used mem(k),Cache mem(k),Net mem Used%,Total mem Used%,Swap mem(%),process1 cpu%,process1 mem%,
4:19:25,12.5,885324,1249960,38.38,38.38,0,6.2,34.7
4:19:28,0.4,885460,1249804,38.39,38.39,0,5.3,34.7
4:19:31,1.8,885700,1249528,38.4,38.4,0,5,34.7
4:19:34,0.7,885700,1249528,38.4,38.4,0,5.3,34.7
4:19:37,0.4,885708,1249528,38.4,38.4,0,5.3,34.7
4:19:40,2.1,885704,1249528,38.4,38.4,0,5.3,34.7
4:19:43,0.4,885704,1249528,38.4,38.4,0,5,34.7
4:19:47,0.7,885700,1249528,38.4,38.4,0,5.3,34.7
4:19:50,13.8,885704,1249528,38.4,38.4,0,16,34.7
到目前为止,我的代码是:
import pandas as pd
import matplotlib.pyplot as plt
# create dataframe
df = pd.read_csv('sample_csv.csv')
# select only cpu columns
cpu_columns = ['Total cpu%', 'process1 cpu%']
# dataframe from cpu columns
df1 = df[cpu_columns]
我想在X轴上绘制所有时间值的数据帧。 因此,我从“时间”列中的值创建了一个列表,并将其设置为x_axis值,如下所示:
x_axis = df["Time"].values
# plot dataframe
df1.plot(x=df["Time"])
plt.show()
因此X轴的标签显示为“时间”。如何在X轴的“时间”列中显示时间值?
答案 0 :(得分:1)
看来您的问题可能与您的时间存储方式有关。如果它们是time
或datetime
dtypes,那么以下内容将很适合您。
将时间设置为索引,只需调用图即可。熊猫默认将索引设置为x轴。
df.Time = df.Time.dt.time
df.set_index('Time').plot()
但是,从代码的外观来看,它们不是。我们可以先将它们作为日期时间传递,然后将它们转换为时间(如果需要)。可以使用pd.to_datetime
进行以下操作,
df.Time = pd.to_datetime(df.Time).dt.time
df.set_index('Time').plot()
注意:这默认为使用今天的日期添加到日期时间。但是,在转换为Time dtype时会删除它。
答案 1 :(得分:0)