Как мне получить анимационную картографическую карту Plotly Express, чтобы показывать несколько стран в год?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как мне получить анимационную картографическую карту Plotly Express, чтобы показывать несколько стран в год?

Сообщение Anonymous »

Я запускаю свой код на MacBook Pro, M1, 2020 года, используя ноутбук Jupyter с Python версии 3.11.5. Я использую Plotly Express для создания анимированной карты хлороплетов, которая показывает, какие страны были колонизированы с 1460 по 1985 год. Прямо сейчас в моем тестовом наборе данных есть две страны: Алжир и Австралия — имя колонизатора для каждой страны. --Франция и Великобритания -- и ряд контрольных (даты нереалистичны) лет, когда каждая страна была колонизирована. Набор данных состоит из трех столбцов: «страна», «колонизатор» и «год», в каждом из которых указана вышеуказанная информация. Вот подмножество данных за 14 лет для каждой страны:
| country | colonizer | year |
| -------- | -------- | ---- |
| Algeria | France | 1844 |
| Algeria | France | 1845 |
| Algeria | France | 1846 |
| Algeria | France | 1847 |
| Algeria | France | 1848 |
| Algeria | France | 1849 |
| Algeria | France | 1850 |
| Algeria | France | 1851 |
| Algeria | France | 1852 |
| Algeria | France | 1853 |
| Algeria | France | 1854 |
| Algeria | France | 1855 |
| Algeria | France | 1856 |
| Algeria | France | 1857 |
| Algeria | France | 1858 |
| Australia| Britain | 1839 |
| Australia| Britain | 1840 |
| Australia| Britain | 1841 |
| Australia| Britain | 1842 |
| Australia| Britain | 1843 |
| Australia| Britain | 1844 |
| Australia| Britain | 1845 |
| Australia| Britain | 1846 |
| Australia| Britain | 1847 |
| Australia| Britain | 1848 |
| Australia| Britain | 1849 |
| Australia| Not Colonized | 1850 |
| Australia| Not Colonized | 1851 |
| Australia| Not Colonized | 1852 |
| Australia| Not Colonized | 1853 |

Я отсортировал набор данных по году col_sort_df =colonized_df.sort_values(by = ['Year']) и ожидал, что код покажет Алжир, а затем Австралию с цветовой кодировкой колонизатор каждый год. Вместо этого на карте показан только один колонизатор, Великобритания, и только одна страна, Австралия. Вот код, который я использовал для отсортированного набора данных:
import pandas as pd
import plotly.express as px

# Add a color mapping for each colonizer
colonizer_color = {
'Britain': 'blue',
'France': 'red',
'Spain': 'yellow',
'Portugal': 'green',
'Belgium': 'purple',
'Germany': 'gray',
'Italy': 'orange',
'Netherlands': 'black'
}

# Create the choropleth map
fig = px.choropleth(
col_sort_df,
locations="country", # Column name for countries
locationmode="country names",
color="colonizer", # Column name for the color mapping
hover_name="country",
animation_frame="year", # Column name for the year to animate over time
color_discrete_map=colonizer_color,
projection="natural earth", # Projection style for the map
title="Colonization by England and France (1800s-Present)"
)

# Update layout for a better appearance
fig.update_layout(
geo=dict(
showframe=False,
showcoastlines=False
)
)

# Show the figure
fig.show()


Подробнее здесь: https://stackoverflow.com/questions/790 ... e-countrie
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»