【问题标题】:Matplotlib is connecting the last to the first point when plottingMatplotlib 在绘图时将最后一个点连接到第一个点
【发布时间】:2019-03-25 22:46:56
【问题描述】:

我正在使用下面的脚本绘制一个图形。当我绘制图形时,最后一个点连接到第一个点。我怎样才能删除这个最后的线条图?请注意,其他一切似乎都很好。

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

【问题讨论】:

  • 如果所有值都在同一个数组或列表中,则不再有“last”和“first”。
  • @ImportanceOfBeingErnest 还有one“最后一个”和“一个”第一个点。但是,中间有很多点,连接数据的最右边和最左边的部分。 (即 xValue 为 15,然后是 xValue 为 0)。

标签: python matplotlib plot drawing figure


【解决方案1】:

matplotlib 中的情节是如何绘制的:

您发送来绘制几个点,它会将其从一个点绘制到另一个点。在您的代码中,您构建了几条曲线,但您不会单独绘制每条曲线,而是将它们全部发送到绘图。所以它绘制第一条曲线,到达终点并开始绘制下一条。 但是!它不知道还有一条曲线,它认为它是一条非常大复杂曲线的一部分,所以剧情画出了那条令人讨厌的线。如果要单独绘制它们,则应将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 循环的开头设置 xValues 和 yValues 以节省一些屏幕空间;)
猜你喜欢
  • 2018-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
  • 2020-08-05
相关资源
最近更新 更多