猿问

Matplotlib 在绘图时将最后一个点连接到第一个点

我正在使用下面的脚本绘制图形。当我绘制图形时,最后一个点连接到第一个点。如何删除最后一条线图?请注意,其他一切似乎都没问题。

我试图在第一个到最后一个点上执行 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()


Smart猫小萌
浏览 519回答 1
1回答

元芳怎么了

如何绘制情节matplotlib:您发送以绘制几个点,然后将其从一个绘制到另一个。在您的代码中,您构建了多条曲线,但没有单独绘制每条曲线,而是将所有曲线都发送到绘图中。所以它绘制第一条曲线,到达终点并开始绘制下一条。但!它不知道还有另一条曲线,它认为它是一条非常大的复杂曲线的一部分,所以情节画了那条恼人的线。如果你想分开绘制它们,你应该pl.plot(xValues,yValues)进入第一个for并xValues, yValues在它之后空。这是我的代码示例(compressiblityFactor被随机函数替换):import matplotlib.pyplot as plimport mathfig = 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()
随时随地看视频慕课网APP

相关分类

Python
我要回答