MetPy: контраст станции
Мне интересно, возможно ли добавить какую-либо текстовую тень на графики станций, чтобы увеличить их контраст при наложении на другие поля. У меня много проблем с поиском цветов, которые хорошо работают при наложении на видимые спутниковые снимки
Это то, что я получил до сих пор:
stationplot_al = StationPlot(ax, data_als.lon.values, data_als.lat.values, clip_on=True,
transform=ccrs.PlateCarree(), fontsize=30)
stationplot_al.plot_parameter('NW', temp_al_c, color='mediumvioletred', weight='demibold')
stationplot_al.plot_parameter('SW', td_al_c, color='mediumvioletred', weight='demibold')
stationplot_al.plot_parameter('NE', data_als.mslp, formatter=lambda v: format(10 * v, '.0f')[-3:],color='orangered',fontsize=32, weight='demibold')
stationplot_al.plot_symbol('C', cf_al_all, sky_cover,color='mediumslateblue')
stationplot_al.plot_barb(u_al, v_al,length=11,linewidth=3.5,barbcolor='mediumslateblue')
1 ответ
Вы можете, используя функцию из matplotlib, называемую эффектами пути. Эффекты контуров позволяют добавлять некоторые эффекты рендеринга к контурам, нарисованным текстом, линиями и т. Д. Существует возможность использовать тень, но я думаю, что для этого случая выделение контуров имеет смысл:
import matplotlib.patheffects as mpatheffects
outline = [mpatheffects.withStroke(linewidth=1, foreground='black')]
stationplot_al.plot_parameter('NW', temp_al_c, color='mediumvioletred',
weight='semibold', path_effects=outline)
Обратите внимание, что matplotlib ожидает передачи списка эффектов в path_effects
параметр. Вы можете использовать linewidth
а также foreground
параметры для управления шириной и цветом контура соответственно.