使用带有两个列表的matplotlib绘制图形
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用带有两个列表的matplotlib绘制图形相关的知识,希望对你有一定的参考价值。
我试图在从CSV文件导入数据并将其存储为两个单独的列表后绘制图形。 matplotlib是否可以使用字符串列表绘制图形,或者列表中是否有必要使用“int”列表?如果没有,为什么以下代码不起作用?
提示错误:
int()的基数为10的无效文字:'02_13_2014'
我的代码:
import csv
import numpy as np
from numpy import genfromtxt
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
with open('pytdef.csv','r') as f:
reader = csv.reader(f)
for row in reader:
print (row)
first_column= ['Date']
second_column = ['Value']
Date_list = []
Value_list = []
with open('pytdef.csv') as f:
reader = csv.reader(f)
for row in reader:
Date_list.append(row[0])
with open('pytdef.csv') as f:
reader = csv.reader(f)
for row in reader:
Value_list.append(row[1])
print (Date_list)
print (Value_list)
Date_list = list(map(int,Date_list))
print (Date_list)
print (Value_list)
fig = plt.figure()
plt.plot_date(x=Date_list, y=Value_list)
plt.show()
答案
我认为这里的问题是你的约会对象。如果您只使用pandas,这里的代码要简单得多
#!/usr/bin/env python
%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
from datetime import date
columns = ['dates', 'value']
data = pd.read_csv('/location_of_file/file_name.csv', header=False, names=columns)
我假设你的数据看起来像这样......
然后格式化日期
data['dates'] = [date(int(x.split('_')[2]), int(x.split('_')[0]),
int(x.split('_')[1])) for x in data.dates]
plt.plot(data.dates, data.value);
以上是关于使用带有两个列表的matplotlib绘制图形的主要内容,如果未能解决你的问题,请参考以下文章
需要帮助使用matplotlib在tkinter中绘制图形[重复]