【发布时间】:2014-03-08 10:41:34
【问题描述】:
我的绘图代码似乎没有显示图表(第 12 到 59 行可能没有破坏它,但我将它们包括在内以防万一 - 我的数据需要一段时间才能放入排序列表)。
我搞砸了它并尝试了不同的东西,但我认为主要问题是我不明白figure()、plt.show()、import matplotlib.pyplot as plt、from pylab import * 和其他一些行的实际含义。我不知道什么时候需要使用它们,也不知道为什么需要使用它们。
有人能帮我解释一下如何绘制一个包含两个列表的 .svg 并在最后显示为什么包含每一行以及我何时将 plt. 放在前面以及何时将 ax. 放入前面,当我没有在前面放任何东西时,等等?抱歉,这需要很长时间才能回答,但我真的不了解 matplotlib 或他们网站上的任何示例。
import matplotlib
matplotlib.use('SVG')
import matplotlib.pyplot as plt
import string, math
from pylab import *
from decimal import *
name = raw_input("Enter the filename:\n")
myfile = open("datafiles/"+name+".data", 'r')
xData = []
yData = []
plots = [name]
mydata = myfile.readlines()
i = 0
N = len(mydata)
while (i < N):
string = mydata[i]
data = [str(x) for x in string.split(" ")]
data=filter(lambda x: len(x)>0, data)
xData.append(data[1])
yData.append(data[2])
i = i + 1
i = 0
while (i < N):
if (float(xData[i]) <= 0):
xData[i] = ""
yData[i] = ""
if (xData[i] == "nan" or xData[i] == "-nan"):
xData[i] = ""
yData[i] = ""
i = i + 1
xData=filter(lambda x: len(x)>0, xData)
yData=filter(lambda x: len(x)>0, yData)
N = len(xData)
i = 0
while (i < N):
xData[i] = float(xData[i])
yData[i] = float(yData[i])
i = i + 1
j = 0
while (j < N):
i = 0
while (i < (N-j-1)):
if (xData[i]>xData[i+1]):
a, b = xData[i], xData[i+1]
xData[i+1], xData[i] = a, b
a, b = yData[i], yData[i+1]
yData[i+1], yData[i] = a, b
i = i + 1
j = j + 1
plot = plt.figure(1)
plt.plot(xData, yData)
plt.show(1)
plt.savefig(name)
【问题讨论】:
标签: python graph matplotlib