Я пытался использовать штриховку контура, чтобы нанести штриховку на важные области, но пунктирные точки покрыть всю площадь участка. Когда я добавляю контурf с маской и штриховками, значения 0 и 1 также отображаются сплошным цветом, скрывая переменные данные, которые я хочу визуализировать.
Я нашел Документация по штриховке MATLAB и аналогичный вопрос для R «добавление штриховки к контурному графику изображения».
Этот вопрос может быть похожим. Как следует из ответа на этот вопрос, я попытался предоставить уровни, но это не решило мою проблему.
Ниже приведен наглядный пример моей проблемы.
Желаемым результатом будет левый контурный график с пунктирными точками только там, где маска имеет значение True.
Правый график показывает мою попытку. Вы можете видеть, что штриховки расположены по всему графику, независимо от маски, а значения маски скрывают значения DataArray.
Код: Выделить всё
import matplotlib.pyplot as plt
import numpy as np
import xarray as xr
def f(x, y):
return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)
x = np.linspace(0, 5, 51)
y = np.linspace(0, 5, 41)
X, Y = np.meshgrid(x, y)
Z = f(X, Y)
da = xr.DataArray(Z, coords = {"lon":x, "lat":y}, dims=["lat", "lon"])
fig =plt.figure(figsize=(12, 6))
ax1 = plt.subplot(121)
ax2 = plt.subplot(122)
ax1.contourf(da.lon, da.lat, da)
mask = da>0.5
ax2.contourf(da.lon, da.lat, da)
ax2.contourf(da.lon, da.lat, mask, hatches=["."])

Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-python
Мобильная версия