Matplotlib 部分未绘制线
问题: 绘制闭合的二维多边形效果良好。 当我试着用一个常量替换第二个维度来绘制1D时,在某些特殊情况下它失败了:然后变成一条线的多边形没有完全绘制出来 我尝试的是: 不同的打印样式,如,其中只有后者再现了问题,而非线式风格起作用。 移动/滚动多边形数组,该数组在移动1或2时不起作用,但移动3和4时解决了问题。 一位不知所措的朋友问道^^ 到目前为止,我通过直接在x.min和x.max之间绘制一条线来帮助自己。 为了简单起见,我删除了z数据。当x与z组合绘制时,只要z远离常数,它也可以工作。但我得到的是一个摆动的图形,而不是一条直线。 然而,数据是否完全绘制取决于其顺序,这怎么可能呢?我做错了什么? 我试图减少其中一种特殊情况的数据,但没有取得很大进展。 下面是一个生成图像的小示例,很抱歉数据集太长,但无法确定要删除哪些值,同时保持问题的可复制性Matplotlib 部分未绘制线,matplotlib,python-3.5,line-plot,Matplotlib,Python 3.5,Line Plot,问题: 绘制闭合的二维多边形效果良好。 当我试着用一个常量替换第二个维度来绘制1D时,在某些特殊情况下它失败了:然后变成一条线的多边形没有完全绘制出来 我尝试的是: 不同的打印样式,如,其中只有后者再现了问题,而非线式风格起作用。 移动/滚动多边形数组,该数组在移动1或2时不起作用,但移动3和4时解决了问题。 一位不知所措的朋友问道^^ 到目前为止,我通过直接在x.min和x.max之间绘制一条线来帮助自己。 为了简单起见,我删除了z数据。当x与z组合绘制时,只要z远离常数,它也可以工作。但我得
import numpy as np
from matplotlib import pyplot as plt
s = np.array([
[-0.08527125, 0.08810856],
[-0.08967261, -0.06748633],
[-0.08772675, -0.08396971],
[-0.08766724, -0.08440267],
[-0.08748191, -0.08521958],
[-0.08438602, -0.09529874],
[-0.08385044, -0.09684308],
[-0.08202714, -0.10180355],
[-0.07874478, -0.1066276 ],
[-0.07857811, -0.10686354],
[-0.07789635, -0.10778213],
[-0.07781094, -0.10789337],
[-0.07710836, -0.10880646],
[-0.07007289, -0.11655674],
[-0.06962708, -0.11703841],
[-0.06727917, -0.11933749],
[-0.06584873, -0.12070607],
[-0.06552574, -0.12100522],
[-0.06527846, -0.12121293],
[-0.06401669, -0.12214381],
[-0.06349801, -0.12245992],
[-0.06328962, -0.12258028],
[-0.0627093 , -0.12290901],
[-0.06225359, -0.12314782],
[-0.06116991, -0.12368258],
[-0.06041895, -0.12403051],
[-0.06017477, -0.12413955],
[-0.05992829, -0.12424804],
[-0.04659197, -0.13006904],
[-0.04634663, -0.13017319],
[-0.04628731, -0.1301966 ],
[-0.04567821, -0.13041967],
[-0.04552972, -0.13047215],
[-0.04521702, -0.13058213],
[-0.00325617, -0.14513102],
[ 0.00180445, -0.14683444],
[ 0.00950078, -0.14923653],
[ 0.01392647, -0.15030046],
[ 0.01518804, -0.15045976],
[ 0.02734024, -0.15177574],
[ 0.02813995, -0.15177997],
[ 0.02882764, -0.15176844],
[ 0.02947446, -0.15171012],
[ 0.03001744, -0.15165147],
[ 0.0309922 , -0.15149313],
[ 0.03121784, -0.15145567],
[ 0.031327 , -0.15143527],
[ 0.03142507, -0.15141573],
[ 0.03150791, -0.15139799],
[ 0.03222764, -0.15124224],
[ 0.03798838, -0.14988557],
[ 0.038991 , -0.1496481 ],
[ 0.0391266 , -0.14961472],
[ 0.03920601, -0.14959498],
[ 0.03938681, -0.14954736],
[ 0.03991586, -0.14940614],
[ 0.05465674, -0.14538513],
[ 0.05500815, -0.14528457],
[ 0.05512499, -0.14524203],
[ 0.05522656, -0.14520209],
[ 0.05558739, -0.14504381],
[ 0.05580602, -0.1449474 ],
[ 0.05609256, -0.14478439],
[ 0.05713959, -0.14412759],
[ 0.05743526, -0.14392656],
[ 0.05889567, -0.14277855],
[ 0.06059875, -0.14143159],
[ 0.06530732, -0.13766523],
[ 0.06933674, -0.13424303],
[ 0.0702827 , -0.13335664],
[ 0.07036637, -0.13327235],
[ 0.07405533, -0.12951652],
[ 0.07810863, -0.125367 ],
[ 0.08087981, -0.12226141],
[ 0.08176499, -0.12123622],
[ 0.08381519, -0.1150717 ],
[ 0.08734418, -0.0927558 ],
[ 0.08230393, 0.09131774],
[ 0.08183173, 0.097691 ],
[ 0.08169106, 0.09931977],
[ 0.08130204, 0.10177584],
[ 0.07914312, 0.11230088],
[ 0.07895476, 0.11316267],
[ 0.07514703, 0.12076318],
[ 0.07464758, 0.12166996],
[ 0.0733333 , 0.12382546],
[ 0.07297538, 0.12425848],
[ 0.06620658, 0.13199037],
[ 0.05294461, 0.14660768],
[ 0.05262742, 0.14694802],
[ 0.05097036, 0.14849098],
[ 0.04972845, 0.14937964],
[ 0.04815287, 0.15002114],
[ 0.04783434, 0.15013311],
[ 0.04757239, 0.15022502],
[ 0.02928349, 0.15634586],
[ 0.02842644, 0.15662035],
[ 0.02776939, 0.15677726],
[ 0.0270936 , 0.15690821],
[ 0.02666639, 0.15698384],
[ 0.02610376, 0.15707915],
[ 0.02601474, 0.15709266],
[ 0.025126 , 0.15722434],
[ 0.02474755, 0.15727606],
[ 0.02296123, 0.15742128],
[ 0.02202472, 0.15744494],
[ 0.02086636, 0.15744469],
[ 0.01967163, 0.15742308],
[ 0.01872141, 0.15737815],
[ 0.01568162, 0.15718458],
[-0.00722516, 0.15361993],
[-0.00785781, 0.15350418],
[-0.02865655, 0.14966376],
[-0.02928172, 0.1495445 ],
[-0.02970399, 0.14942282],
[-0.03124785, 0.14896281],
[-0.03160079, 0.14884731],
[-0.03311488, 0.14832349],
[-0.04643741, 0.14369722],
[-0.04831254, 0.14301643],
[-0.04846789, 0.14294296],
[-0.04902343, 0.14264339],
[-0.04980039, 0.14218488],
[-0.05127431, 0.14122099],
[-0.05343824, 0.13978482],
[-0.06641953, 0.1306598 ],
[-0.06719992, 0.13009146],
[-0.06732267, 0.12997761],
[-0.06842394, 0.12872382],
[-0.06895024, 0.12808815],
[-0.07854825, 0.11574519],
[-0.08365013, 0.10504 ],
[-0.0837306 , 0.10486896],
[-0.08384365, 0.10417084],
[-0.08444646, 0.09768441]])
# make first and last point the same, to close the circle
s = np.concatenate([s,s[:1]])
y = s[:,0]
x = s[:,1]
# plot the polygon xy
plt.plot(x, y, 'b--', label='Polygon with x/y')
# plot only x values of the polygon (does not work)
plt.plot(x, np.zeros(len(x)), 'g-', linewidth=10, label='does not stretch over red dots')
# do the same, but with dots to show x values (does work)
plt.plot(x, np.zeros(len(x)), 'r.')
# do the same, a little bit lower, but with shifted/rolled x values.
# rolled by 1 or 2 does not help, but by 3 or 4 does.
plt.plot(np.roll(x,3), np.ones(len(x))-1.02, '-', color="lightgreen", linewidth=10, label="stretches over red dots")
# do the same again with dots to show x values
plt.plot(np.roll(x,3), np.ones(len(x))-1.02, 'r.')
plt.legend(loc='lower center').get_frame().set_alpha(1)
plt.show()
在Windows10中通过Anaconda使用Python 3.5 x64。Matplotlib是v2.0.00毫米宽的游泳池有多长?理论上,它有一段时间,但实际上你无法测量它。这里也会发生同样的情况,在一维中没有延伸的多边形可能被渲染到任意长度。根据图形大小、缩放级别和轴范围,两个多边形都会出现相同的效果
我想你已经找到了一个解决办法,画一条线而不是多边形。这也是我的建议。我明白你的观点,但不明白它在这里是如何应用的。绘制一系列形成多边形的直线是否与绘制一系列直线不同?如果我不关闭这些线以形成多边形s=np,则连接[s,s[:1]],而只保留min!=max,它显示了相同的行为。我同意这很奇怪,但如果对值进行排序,也可以正常工作,plt.plotnp.sortx,np.zeroslenx。是的,尽管排序后绘制的线在内部与未排序的线非常不同-无论如何,它们在视觉上应该是不可区分的。我将把这个问题留待几天,可能会有一位pyplotguru过来告诉我们matplotlib中有一种特殊的修剪算法,恶意地剖析我的图形;