使用matplotlib在Python上绘制水位表

问题描述

我正在尝试绘制一个数组(地下水位)。 X轴是我正在处理的地图的坐标,图的Y轴对应于该坐标中的地下水位。

我正在尝试以下操作:

water_table = flopy.utils.postprocessing.get_water_table(heads_data,nodata=-9999)
x = np.linspace(0,12000,200)
plt.plot(x,water_table.T,'r')

我得到以下图形:

enter image description here

我尝试了散点图绘制,以便随后可以添加一条穿过每个点的线,但是该线不起作用。我不知道是否是因为数组?如何摆脱每个点下方的蓝线或添加一些内容,以使图形看起来更“漂亮”?

解决方法

使用numpy,您可以过滤出零:

x = np.linspace(0,12000,200)
t = np.array(water_table.T)
plt.plot(x[t>0],t[t>0],'dodgerblue')

或者,如果您希望在没有数据的地方出现空白,可以用NaN替换不需要的价位:

x = np.linspace(0,200)
t = np.array(water_table.T)
plt.plot(x,np.where(t > 0,t,np.nan),'navy')