Я запускаю свой код на MacBook Pro, M1, 2020 года, используя ноутбук Jupyter с Python версии 3.11.5. Я использую Plotly Express для создания анимированной карты хлороплетов, которая показывает, какие страны были колонизированы с 1460 по 1985 год. Прямо сейчас мой тестовый набор данных включает 4 страны: Алжир, Анголу, Австралию и Белиз — название колонизатор для каждой страны — Франции, Великобритании, Португалии, Испании и неколонизированной — и ряд контрольных (даты нереалистичны) лет, когда каждая страна была колонизирована. Набор данных состоит из трех столбцов: «страна», «колонизатор» и «год», в каждом из которых содержится приведенная выше информация. Вот подмножество данных за 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 |
| Angola | Portugal | 1844 |
| Angola | Portugal | 1845 |
| Angola | Portugal | 1846 |
| Angola | Portugal | 1847 |
| Angola | Portugal | 1848 |
| Angola | Portugal | 1849 |
| Angola | Portugal | 1850 |
| Angola | Portugal | 1851 |
| Angola | Portugal | 1852 |
| Angola | Portugal | 1853 |
| Angola | Portugal | 1854 |
| Angola | Portugal | 1855 |
| Belize | Spain | 1845 |
| Belize | Spain | 1846 |
| Belize | Spain | 1847 |
| Belize | Spain | 1848 |
| Belize | Spain | 1849 |
| Belize | Spain | 1850 |
| Belize | Spain | 1851 |
| Belize | Spain | 1852 |
| Belize | Spain | 1853 |
| Belize | Spain | 1854 |
| Belize | Spain | 1855 |
| 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']) и ожидал, что код покажет все 4 страны в те годы, в которые они перекрываются, цвет, кодируемый колонизатором каждый год. Вместо этого на карте одновременно отображается только один колонизатор и одна страна. Вот код, который я использовал для отсортированного набора данных:
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',
'Not Colonized': '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
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
Как мне получить анимационную картографическую карту Plotly Express, чтобы показывать несколько стран в год? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение