【问题标题】:How to plot time as x axis in pandas如何在熊猫中将时间绘制为x轴
【发布时间】:2018-12-10 17:21:22
【问题描述】:

我正在尝试在 pandas 中绘制一个数据框。我使用的 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 轴的“时间”列中显示时间值?

【问题讨论】:

    标签: python-3.x pandas plot


    【解决方案1】:

    您的问题似乎与您的时间存储方式有关。如果它们属于 time 或 datetime dtypes,那么以下内容应该很适合您。

    将 Time 设置为索引并简单地调用 plot. Pandas 默认将索引设置为 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 时,它​​会被删除。

    【讨论】:

      【解决方案2】:

      你可以这样做:

      df["Time"] = pd.to_datetime(df['Time'])
      df.plot(x="Time", y=["Total cpu%", "process1 cpu%"])
      plt.show()
      

      输出:

      【讨论】:

      • 如果不是所有的 x 轴标签,是否可以显示最大值?很明显,上图中只显示了几个时间值。
      • 最大值是什么意思?
      • x-ticks 的数量非常少。是否可以显示更多的 x-ticks?图表上可以显示的 x-ticks 数量是否有限制?
      • FutureWarning: Passing timedelta64-dtype data is deprecated, will raise a TypeError in a future version
      猜你喜欢
      • 2016-04-10
      • 2019-04-20
      • 2013-05-18
      • 2017-11-22
      • 2019-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多