<p>我的绘图代码似乎没有显示图形(第12行到第59行可能没有破坏它,但我把它们包括进来以防万一-我有数据花了一段时间才放入一个排序列表)。</p>
<p>我把它搞得一团糟,尝试了不同的方法,但我认为主要的问题是我不明白<code>figure()</code>、<code>plt.show()</code>、<code>import matplotlib.pyplot as plt</code>、<code>from pylab import *</code>和其他一些行实际上是什么意思。我不知道什么时候该用,为什么要用。</p>
<p>有人能帮我解释一下如何画一个两个列表的.svg,并让它在最后显示,详细说明为什么要包含每一行,何时将<code>plt.</code>放在前面,何时将<code>ax.</code>放在前面,何时不将任何内容放在前面等等?很抱歉,回答这个问题需要很长时间,但我真的不理解matplotlib或他们网站上的任何示例。</p>
<pre><code>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.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(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)
</code></pre>