У меня есть карта Великобритании и 121 локация, каждая с 3 значениями. Я хотел бы построить небольшую гистограмму из трех значений в каждом из 121 местоположения.
В настоящее время значения отображаются в виде атрибута markersize
, который выглядит следующим образом:
Trypophobic_Plot
сделано с использованием следующего кода: (упрощенно)
fig, ax = plt.subplots()
ax = Basemap(llcrnrlat= 46.351611,
llcrnrlon= -11.543011,
urcrnrlat= 60.417133,
urcrnrlon= 6.2743413,
resolution='i', projection='tmerc', lon_0=-2, lat_0=49)
#Draw Coastlines, colours etc.
(removed because not important to this example)
################################################
# Plot Network edge map
(not important to this example)
################################################
# Plot SYNOP Station Points
lats = [59.5329945921, 58.9499976059, 57.3669959942...]
lons = [-1.63299557989, -2.90000295719, -7.40000487601...]
for method in range (0,3):
for i in range(0, len(lons)):
x,y = ax(lons[i], lats[i])
ax.plot(x, y, 'o', color=(1,1,1,0), \
markersize= ..., \
markeredgecolor=..., \
markeredgewidth=7)
################################################
# Other plot features
plt.text(10000, 10000,'Max: = ' ... + \
'\nMin: = ' ..., \
fontsize=32, zorder=75.)
plt.title('site_scores' , fontsize=30)
plt.show()
однако, я бы хотел гистограмму. Способ, которым я подхожу к этому, состоит в том, чтобы подготовить участок для каждого из 121 местоположения. Это может быть неэффективно, поэтому, пожалуйста, предложите другой подход, если вы думаете, что есть лучший способ.
То, что я пробовал:
Я начал изучать преобразование между широтой / долготой и действительными осями графика, что немного сбивало с толку. Есть display
, axes
, data
и Figure
. Я не смог применить операнды преобразования здесь: https://matplotlib.org/users/transforms_tutorial.html к ax
координатам. Вы можете видеть, как я делал круги в коде выше, но я не знаю, на какую систему координат их переключают.
Тогда я подумал, что попробую просто добавить ось, которую я обычно делаю, и посмотреть, где она появилась. Вот так:
ax3 = fig.add_axes([0.5,0.5, 0.2, 0.2])
но это приводит к ошибке относительно размера участка:
ValueError: Image size of 5690009x6001228 pixels is too large. It must be less than 2^16 in each direction.
Вот где я сейчас нахожусь. Я хочу небольшую линейную диаграмму размером с эти круги.