2014-03-12 348 views
0

我创建了一个简单的csv文件,其数字接近pi,我想创建并将输出存储为png。我有一个非常简单的CSV,两两包含了我想要绘制图形的数量和如何使用matplotlib将简单的csv转换为折线图?

import pandas as pd 
import csv 
import matplotlib.pyplot as plt 

from decimal import Decimal 

def create_png(): 

df = pd.read_csv('sticks.csv', names=["xstk", "stk"]) 

sumdf = df.sum(0) 
num1 = sumdf['xstk'] 
num2 = sumdf['stk'] 
total = num1 + num2 

aproxpi = [(2*float(total))/num1] 

with open('aproxpi.csv', 'a') as pifile: 
    piwriter = csv.writer(pifile, delimiter= ' ') 
    piwriter.writerow(aproxpi) 

Piplot = pd.read_csv('aproxpi.csv', names=['~Pi']) 

#Piplot.groupby('~Pi') 


Piplot.plot(title='The Buffon Needle Experiment') 




if __name__ == "__main__": 
    create_png() 

当我运行这段代码没有任何反应。如果我在AxesSubPlot上使用show方法,则引发异常。这如何实现?

回答

2

您需要致电plt.show()才能看到该图。

+0

谢谢,我试图调用show(),但没有意识到这是一种plt的方法。 –

0

此代码看起来非常不完整 - 您有更多可以给我们吗?

这可能是Piplot.plot需要指定x和y,而不是简单的标题。我相信你需要创建一个新的绘图对象并将数据传递给它,而不是像现在这样调用data.plot()。请参阅documentation

此外,看看this question可能会有所帮助。

+0

我现在编辑它来显示整个代码,我现在将尝试做到这一点。 –