Gau*_*ain 6 python numpy matplotlib
我试图绘制一个numpy数组,使得所有具有相同y轴值的点应该在一条直线上连接.但有些我无法实现这一目标.
import numpy as np
import matplotlib as mp
import matplotlib.pyplot as plt
# Declare numpy array with nans
x=np.array([np.nan,10005,10005,10006,10006,10006,10007,10007,10007, 10008,10007,10008,10008,10008, np.nan,10010,10010,10010, np.nan, np.nan, np.nan, np.nan])
# Plot the points
plt.plot(x, marker="o", linestyle='-')
# Display the plot in the window
plt.show()
Run Code Online (Sandbox Code Playgroud)
这导致:
但我希望情节如下:
此外,如果有一种方法可以在图的顶部和底部添加一些边距,以清楚地显示边界点.
循环 y 值的唯一列表(我更改了标签以使事情更清晰)。您还需要一组 x 值,这些值与您的绘图隐式相同,但我们需要位置。
import numpy as np
import matplotlib as mp
import matplotlib.pyplot as plt
# Declare numpy array with nans
y=np.array([np.nan,10005,10005,10006,10006,10006,10007,10007,10007, 10008,10007,10008,10008,10008, np.nan,10010,10010,10010, np.nan, np.nan, np.nan, np.nan])
x=np.arange(y.size)
for yv in np.unique(y):
if yv != np.nan:
idx = y == yv
plt.plot(x[idx],y[idx],marker='o',linestyle='-',color='b')
plt.margins(.1,.1)
plt.show()
Run Code Online (Sandbox Code Playgroud)
使用plt.margins
你可以给自己一些与边界相交的图的空间。