如何在python中从csv绘制图形

Posted

技术标签:

【中文标题】如何在python中从csv绘制图形【英文标题】:How to plot a graph from csv in python 【发布时间】:2020-10-04 01:29:20 【问题描述】:

我有以下代码,想知道如何在 python 中将其绘制为图形

year,month,sales,expenditure
2018,jan,6226,3808
2018,feb,1521,3373
2018,mar,1842,3965
2018,apr,2051,1098
2018,may,1728,3046
2018,jun,2138,2258
2018,jul,7479,2084
2018,aug,4434,2799
2018,sep,3615,1649
2018,oct,5472,1116
2018,nov,7224,1431
2018,dec,1812,3532

这是我目前的代码

import matplotlib.pyplot as plt
import csv

x = []
y = []

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

plt.plot(x,y, label='Loaded from file!')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

【问题讨论】:

【参考方案1】:
import matplotlib.pyplot as plt
import pandas as pd

%matplotlib inline  # jupyter notebook


# Load data
data = pd.read_csv('your_csv_file.csv')

# Plot
plt.figure(figsize=(6.8, 4.2))
x = range(len(data['month']))
plt.plot(x, data['sales'])
plt.xticks(x, data['month'])
plt.xlabel('Month')
plt.ylabel('Sales')
plt.show()

希望对你有帮助。

【讨论】:

【参考方案2】:
df =pd.read_csv('filename.csv', sep=',')

months = 'jan':1,
          'feb':2,
          'mar':3,
          'apr':4,
          'may':5,
          'jun':6,
          'jul':7,
          'aug':8,
          'sep':9,
          'oct':10,
          'nov':11,
          'dec':12
         

plt.plot(df['month'].replace(months), df['sales'], label='sales')
plt.plot(df['month'].replace(months), df['expenditure'], label='expenditure')

plt.gca().set_xticks(list(months.values()))
plt.gca().set_xticklabels(list(months.keys()))
plt.legend()

【讨论】:

整个代码会是什么样子?以上似乎对我不起作用 “似乎不起作用”是什么意思?您收到错误消息吗? 别担心 - 我解决了!我没有包含文件名 - 谢谢你的帮助!!

以上是关于如何在python中从csv绘制图形的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python在一个图形中绘制具有不同日期时间的三个值?

如何在 python 上绘制有两个 x 变量的图形,其中一个需要根据给定数据计算? [关闭]

ValueError:无法将字符串转换为浮点数:在 python 上绘制图形

如何在Python中添加动画以绘制图形

番外3. Python OpenCV 中如何绘制各种图形?

番外3. Python OpenCV 中如何绘制各种图形?