【问题标题】:Python plot_dataPython 绘图数据
【发布时间】:2022-11-17 21:56:33
【问题描述】:

它首先以 csv 文件格式生成一些数据,然后使用 plot_data 方法绘制它。

如何解决错误?

import csv
import matplotlib.pyplot as plt

f = open("data_file.csv", "w")
w = csv.writer(f)
_ = w.writerow(["precision", "recall"])
w.writerows([[0.013,0.951],
             [0.376,0.851],
             [0.441,0.839],
             [0.570,0.758],
             [0.635,0.674],
             [0.721,0.604],
             [0.837,0.531],
             [0.860,0.453],
             [0.962,0.348],
             [0.982,0.273],
             [1.0,0.0]])
f.close()

matplotlib.pyplot.show('data_file.csv')

我是一名学生,正在学习Python,我应该如何绘制数据?谢谢你

【问题讨论】:

  • 你有点奇怪。就像,这里有两个不同的问题。一个是“我如何将这些数据保存到 csv?”另一个是“我如何从 csv 绘图?”这两者与您真正的问题“我如何绘制这些数据?”无关。

标签: python plot


【解决方案1】:

你也可以试试这个来显示情节

import matplotlib.pyplot as plt
import csv

x = []
y = []

with open('data_file.csv','r') as csvfile:
    plots = csv.reader(csvfile, delimiter = ',')
    
    for row in plots:
        x.append(row[0])
        y.append(row[1])

plt.bar(x, y, color = 'g', width = 0.72, label = "recall")
plt.xlabel('precision')
plt.ylabel('recall')
plt.title('Title')
plt.legend()
plt.show()

或者

import matplotlib.pyplot as plt
import csv

x = []
y = []

with open('data_file.csv','r') as csvfile:
    lines = csv.reader(csvfile, delimiter=',')
    for row in lines:
        x.append(row[0])
        y.append(row[1])

plt.plot(x, y, color = 'g', linestyle = 'dashed',
        marker = 'o',label = "precision")

plt.xticks(rotation = 25)
plt.xlabel('precision')
plt.ylabel('recall')
plt.title('Title', fontsize = 20)
plt.grid()
plt.legend()
plt.show()

【讨论】:

    【解决方案2】:

    所以问题是你必须先用数据调用 plt.plot() ,然后再调用 plt.show() 你可以这样做:

    import csv
    import matplotlib.pyplot as plt
    
    f = open("data_file.csv", "w")
    w = csv.writer(f)
    _ = w.writerow(["precision", "recall"])
    rows = [[0.013,0.951],[0.376,0.851],[0.441,0.839],[0.570,0.758],[0.635,0.674],[0.721,0.604],[0.837,0.531],[0.860,0.453],[0.962,0.348],[0.982,0.273],[1.0,0.0]]
    precision = [row[0] for row in rows]
    recall = [row[1] for row in rows]
    w.writerows(rows)
    f.close()
    plt.plot(precision, recall)
    plt.show()
    

    上面你的数据在rows,你的两个变量分为precisionrecall。所以现在你可以打电话给plt.plot(precision, recall)然后plt.show

    【讨论】:

      【解决方案3】:

      理想情况下,您的代码应该在最后一行抛出 NameError,表示未定义“matplotlib”。由于您已经将 matplotlib.pyplot 导入为 plt,因此在代码后面使用 plt 作为引用,而不是一次又一次地调用 matplotlib.pyplot

      您不能将 CSV 文件作为参数直接传递给 plt.show() 函数。

      我建议你使用熊猫包以从您的 CSV 文件中创建数据框并绘制如下代码中的值:

      import csv
      import matplotlib.pyplot as plt
      import pandas as pd
      
      f = open("data_file.csv", "w")
      w = csv.writer(f)
      _ = w.writerow(["precision", "recall"])
      w.writerows([[0.013,0.951],
                   [0.376,0.851],
                   [0.441,0.839],
                   [0.570,0.758],
                   [0.635,0.674],
                   [0.721,0.604],
                   [0.837,0.531],
                   [0.860,0.453],
                   [0.962,0.348],
                   [0.982,0.273],
                   [1.0,0.0]])
      f.close()
      
      Dataframe = pd.read_csv('data_file.csv')
      
      plt.plot(Dataframe.precision, Dataframe.recall)
      plt.show()
      
      

      您可以查看更多关于熊猫文档here绘图文档here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        • 2021-06-09
        • 2018-02-24
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        相关资源
        最近更新 更多