从CSV绘制图形

安东尼·麦克库尔

我正在寻找一点帮助,我真的是Python的新手,不知道这是否会使myslef或其他内容变得更难。我正在尝试从csv文件绘制简单的折线图。香港专业教育学院尝试了许多方法,但都返回错误:ValueError:无法将字符串转换为浮点数:

这似乎是最好的代码

import csv`
import pylab as pl
import numpy as np
matplotlib.dates as mdates
with open('D:/growth_rate.csv') as csvfile:
     readCSV = csv.reader(csvfile, delimiter=',')

for row in readCSV:
    print (row)
a= (row)
np.shape(a)
x,y = np.loadtxt('D:/growth_rate.csv', delimiter = ',', unpack=True,
                         converters = {0: mdates.strpdate2num('%d/%m/%Y')})

香港专业教育学院也尝试了CSV阅读器的方法,但类似的问题

a = zip(*csv.reader(open('D:/growth_rate.csv', 'rb')))
csv.writer(open('D:/growth_rate.csv', "wb")).writerows(a)

print a

我不知道csv文件是否有问题,它最初是xls文件,带有公司标题和其他废话,所以我将其放入csv中并尝试了txt文件。或我确实错过了一些明显的事情,

任何帮助,不胜感激。

or1426

您也可以在numpy / matplotlib中执行此操作,而无需使用熊猫。请注意,这np.genfromtxt可以很好地处理空白行(相对于空白行,np.loadtxt它们会中断。默认情况下,这些值会用NaNs填充,但是您可以使用filling_values选项更改此

import numpy as np
import matplotlib.dates as mdates
from matplotlib import pyplot as plt

date_decode_function = lambda b: mdates.strpdate2num('%d/%m/%Y')(b.decode())

dates, growth_rates = np.genfromtxt('growth_rate.csv',
                                    delimiter = ',',
                                    unpack=True,
                                    converters = {0: date_decode_function})


fig, ax = plt.subplots()
ax.plot_date(dates, growth_rates,'-',lw=2)
plt.xlabel("Date", fontsize=16)
plt.ylabel("Growth rate", fontsize=16)

plt.grid()
plt.show()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章