[英]Matplotlib line plot: data point not displayed
我有147637行和175列的多维数组。 现在我只想绘制其中一列,即最后一列。 最后一列除以下5行外的所有行中都填充0:29528、59051、88583、118110、147636。这些行的值为1。以下是我用来绘制的代码:
import matplotlib.pyplot as plt
workBoundary=-1
fig,(ax1)=plt.subplots(nrows=1,ncols=1)
ax1.plot(allPathsDistance[:,workBoundary],color='maroon')
plt.show()
以下是输出: 注意x轴。 根据该图,第0行和第60000行之间没有'1'值。
值“ 1”的数据点应该出现在大约第30000行(准确地说是第29528行)。 我不知道为什么会这样。 谁能帮助纠正这一点? 我重新启动了Spyder IDE,但此行为没有改变。
附加信息:
如果将x轴限制编辑为不显示0,如下所示:
import matplotlib.pyplot as plt
workBoundary=-1
fig,(ax1)=plt.subplots(nrows=1,ncols=1)
ax1.plot(allPathsDistance[:,workBoundary],color='maroon')
ax1.set_xlim(left=10)
plt.show()
这似乎表明matplotlib没有在绘图区域的某些位置绘制数据。
版本信息:matplotlib:2.1.0 Spyder:3.1.4 Windows:7 Python:3.6.3
如果您的数据中确实确实分布着非常尖锐的尖峰,则可以使用ax.vlines()
来确保它们都可见:
from matplotlib import pyplot as plt
import numpy as np
##setting up the data
allPathsDistance = np.zeros(147637)
allPathsDistance[[29528, 59051, 88583, 118110, 147636]] = 1.0
xvals = np.arange(allPathsDistance.shape[0])
##masking:
mask = allPathsDistance>0
##plotting
fig, ax = plt.subplots()
ax.vlines(xvals[mask], np.zeros_like(xvals[mask]),allPathsDistance[mask])
ax.set_xlim([xvals[0]-1000,xvals[-1]+1000])
plt.show()
...结果如下:
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.