【问题标题】:How do add a legend to CSV data plot with no header in Python?如何在 Python 中为没有标题的 CSV 数据图添加图例?
【发布时间】:2021-05-26 12:38:10
【问题描述】:

我有一个 csv 文件,其中包含我想要绘制的值。该文件没有如下所示的标题。

          0.95744324  0.09625244  7.9512634
0       0.840118    0.153717   7.841126
1       0.646194    0.292572   7.754929
2       0.492966    0.452988   7.829147
3       0.291855    0.646912   7.991959
4       0.279877    0.716354   8.039841
...          ...         ...        ...

我可以使用下面的代码在图表上将每一列绘制为单独的线,但我想为相应的列/线添加 x、y、z 尺寸的图例。我不确定该怎么做,因为我现在拥有图例“x”中的所有键。我无法修改 csv 文件,所以我应该在代码中添加标题,然后单独绘制每一列吗?

aPlot = pd.read_csv('accl/a.csv')


plt.figure()
plt.plot(aPlot, label = "x")
plt.xlabel("time")
plt.ylabel("acceleration[m/s^2")
plt.legend(loc="upper left")
plt.show

【问题讨论】:

  • 看来你无意中将第一行数据放到了表头中。
  • 阅读时尝试添加namesaPlot = pd.read_csv('accl/a.csv', names=["col1", "col2", "col3"])
  • 我在阅读时添加了names,如何让它们成为图例中的对应标签?

标签: python pandas csv matplotlib


【解决方案1】:

由于您的 CSV 文件没有标题,您可以通过传递 names 参数来指定列名。

然后您可以使用数据框进行绘图,然后图例将是正确的:

import matplotlib.pyplot as plt
import pandas as pd
 
aPlot = pd.read_csv('input.csv', names=['col1', 'col2', 'col3'])

aPlot.plot()
plt.xlabel("time")
plt.ylabel("acceleration[m/s^2")
plt.legend(loc="upper left")
plt.show()        

给你:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 2021-06-17
    • 1970-01-01
    • 2020-02-20
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多