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 параметры для управления шириной и цветом контура соответственно.

Другие вопросы по тегам