Как не складывать масштабы осей в кодировании Python? ⇐ Python
Как не складывать масштабы осей в кодировании Python?
Я хочу нарисовать карту погоды и впервые рисую самостоятельно. Я использовал приведенный ниже код, и он работает примерно, но я хочу, чтобы рисунок был четким.
импортировать matplotlib.pyplot как plt импортировать numpy как np импортировать cartopy.crs как ccrs из cartopy.mpl.gridliner импорт LONGITUDE_FORMATTER, LATITUDE_FORMATTER из cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter импортировать панд как pd file_path = 'D:/기상청ASOS/SH1.0925.high.csv' df = pd.read_csv(путь_файла, кодировка = 'euc-kr') лон = df['lon'] лат = df['широта'] hgt = df['hgt'] ws = df['ws'] и = df['u'] v = df['v'] рис = plt.figure(figsize=(10,10)) ax = fig.add_subplot(1,1,1,projection=ccrs.PlateCarree()) ax.set_extent([125,131,33,38]) ax.coastlines('110m') ax.stock_img() ax.set_xticks(np.arange(105,146,5),crs=ccrs.PlateCarree()) ax.set_yticks(np.arange(20,56,5),crs=ccrs.PlateCarree()) ax.xaxis.set_major_formatter(LongitudeFormatter()) ax.yaxis.set_major_formatter(LatitudeFormatter()) cs = ax.tricontour(lon, lat, hgt, уровни=30, цвета = 'серый') ax.quiver(lon,lat,u,v, масштаб = 300, цвет = 'черный', Transform=ccrs.PlateCarree()) ax.clabel(cs, inline=True, размер шрифта=8) ax.gridlines(crs =ccrs.PlateCarree(), draw_labels= True) Высокий = высота > 850 Низкий = высота < 710 lon_H, lat_H = lon[Высокая], lat[Высокая] lon_L, lat_L = lon[Низкая], lat[Низкая] lon_H_center, lat_H_center = lon_H.mean(), lat_H.mean() lon_L_center, lat_L_center = lon_L.mean(), lat_L.mean() ax.text(lon_H_center, lat_H_center, 'High', color='red', ha = 'center', va='center', fontsize = 12,transform=ccrs.PlateCarree()) ax.text(lon_L_center, lat_L_center, 'Low', color='blue', Fontsize= 12, ha='center',va='center', Transform=ccrs.PlateCarree()) plt.show() введите здесь описание изображения
Я использовал ChatGPT, чтобы решить эту проблему. ответом является вставка «x_inline=False,y_inline=False» в ax.gridlines(....) или изменение на «ax.set_xticks([])». но это не похоже на увеличение другой части карты и т. д.
Я просто хочу удалить стек масштаба осей X,Y (25,30,35). Как мне поступить?
И есть еще один вопрос. Я хотел бы нарисовать фон карты погоды, как прикрепленное изображение. Введите здесь описание изображения. Какую часть моего кода пересмотреть?
Я хочу нарисовать карту погоды и впервые рисую самостоятельно. Я использовал приведенный ниже код, и он работает примерно, но я хочу, чтобы рисунок был четким.
импортировать matplotlib.pyplot как plt импортировать numpy как np импортировать cartopy.crs как ccrs из cartopy.mpl.gridliner импорт LONGITUDE_FORMATTER, LATITUDE_FORMATTER из cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter импортировать панд как pd file_path = 'D:/기상청ASOS/SH1.0925.high.csv' df = pd.read_csv(путь_файла, кодировка = 'euc-kr') лон = df['lon'] лат = df['широта'] hgt = df['hgt'] ws = df['ws'] и = df['u'] v = df['v'] рис = plt.figure(figsize=(10,10)) ax = fig.add_subplot(1,1,1,projection=ccrs.PlateCarree()) ax.set_extent([125,131,33,38]) ax.coastlines('110m') ax.stock_img() ax.set_xticks(np.arange(105,146,5),crs=ccrs.PlateCarree()) ax.set_yticks(np.arange(20,56,5),crs=ccrs.PlateCarree()) ax.xaxis.set_major_formatter(LongitudeFormatter()) ax.yaxis.set_major_formatter(LatitudeFormatter()) cs = ax.tricontour(lon, lat, hgt, уровни=30, цвета = 'серый') ax.quiver(lon,lat,u,v, масштаб = 300, цвет = 'черный', Transform=ccrs.PlateCarree()) ax.clabel(cs, inline=True, размер шрифта=8) ax.gridlines(crs =ccrs.PlateCarree(), draw_labels= True) Высокий = высота > 850 Низкий = высота < 710 lon_H, lat_H = lon[Высокая], lat[Высокая] lon_L, lat_L = lon[Низкая], lat[Низкая] lon_H_center, lat_H_center = lon_H.mean(), lat_H.mean() lon_L_center, lat_L_center = lon_L.mean(), lat_L.mean() ax.text(lon_H_center, lat_H_center, 'High', color='red', ha = 'center', va='center', fontsize = 12,transform=ccrs.PlateCarree()) ax.text(lon_L_center, lat_L_center, 'Low', color='blue', Fontsize= 12, ha='center',va='center', Transform=ccrs.PlateCarree()) plt.show() введите здесь описание изображения
Я использовал ChatGPT, чтобы решить эту проблему. ответом является вставка «x_inline=False,y_inline=False» в ax.gridlines(....) или изменение на «ax.set_xticks([])». но это не похоже на увеличение другой части карты и т. д.
Я просто хочу удалить стек масштаба осей X,Y (25,30,35). Как мне поступить?
И есть еще один вопрос. Я хотел бы нарисовать фон карты погоды, как прикрепленное изображение. Введите здесь описание изображения. Какую часть моего кода пересмотреть?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Класс осей - явно устанавливает размер (ширину/высоту) осей в заданных единицах.
Anonymous » » в форуме Python - 0 Ответы
- 56 Просмотры
-
Последнее сообщение Anonymous
-