Matplotlib 在绘图时将最后一个点连接到第一个点
Matplotlib is connecting the last to the first point when plotting
我正在使用下面的脚本绘制图形。当我绘制图形时,最后一个点连接到第一个点。我怎样才能删除最后的线条图?请注意,其他一切似乎都正常。
我试图在第一个点到最后一个点上做一个for循环,结果如下图所示。
fig = pl.figure()
ax = fig.add_subplot(111)
xValues = []
yValues =[]
for tr in range(105,300,5):
tr = tr/100.
for pr in range(0,1500,1):
pr = pr / 100.
result = compressiblityFactor(pr,tr,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
##result = compressiblityFactor(p,t,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,specificGravity)
xValues.append((pr))
yValues.append(result)
pl.plot(xValues,yValues)
pl.show()
matplotlib
中的情节是如何绘制的:
您发送到 plot 几个点,它会从一个点绘制到另一个点。在您的代码中,您构建了几条曲线,但您没有单独绘制每条曲线,而是将它们全部发送到绘图。所以它绘制第一条曲线,到达终点并开始绘制下一条曲线。 但是! 它不知道还有另一条曲线,它认为它是一条非常复杂的曲线的一部分,所以情节画了那条烦人的线。如果你想分开绘制,你应该把pl.plot(xValues,yValues)
移到第一个for
,然后空xValues, yValues
。这是我的代码示例(compressiblityFactor
被随机函数替换):
import matplotlib.pyplot as pl
import math
fig = pl.figure()
ax = fig.add_subplot(111)
for tr in range(105,300,5):
xValues = []
yValues = []
tr = tr/100.
for pr in range(0,1500,100):
pr = pr / 100.
result = pr*pr*math.sin(tr*40)
xValues.append(pr)
yValues.append(result)
pl.plot(xValues,yValues)
pl.show()
我正在使用下面的脚本绘制图形。当我绘制图形时,最后一个点连接到第一个点。我怎样才能删除最后的线条图?请注意,其他一切似乎都正常。
我试图在第一个点到最后一个点上做一个for循环,结果如下图所示。
fig = pl.figure()
ax = fig.add_subplot(111)
xValues = []
yValues =[]
for tr in range(105,300,5):
tr = tr/100.
for pr in range(0,1500,1):
pr = pr / 100.
result = compressiblityFactor(pr,tr,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11)
##result = compressiblityFactor(p,t,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,specificGravity)
xValues.append((pr))
yValues.append(result)
pl.plot(xValues,yValues)
pl.show()
matplotlib
中的情节是如何绘制的:
您发送到 plot 几个点,它会从一个点绘制到另一个点。在您的代码中,您构建了几条曲线,但您没有单独绘制每条曲线,而是将它们全部发送到绘图。所以它绘制第一条曲线,到达终点并开始绘制下一条曲线。 但是! 它不知道还有另一条曲线,它认为它是一条非常复杂的曲线的一部分,所以情节画了那条烦人的线。如果你想分开绘制,你应该把pl.plot(xValues,yValues)
移到第一个for
,然后空xValues, yValues
。这是我的代码示例(compressiblityFactor
被随机函数替换):
import matplotlib.pyplot as pl
import math
fig = pl.figure()
ax = fig.add_subplot(111)
for tr in range(105,300,5):
xValues = []
yValues = []
tr = tr/100.
for pr in range(0,1500,100):
pr = pr / 100.
result = pr*pr*math.sin(tr*40)
xValues.append(pr)
yValues.append(result)
pl.plot(xValues,yValues)
pl.show()