Asi me queda la funcion top countries usando seaborn 0.14.0
def top_countries(df: pd.DataFrame ,flag: list):
def set_color(value):
if value in flag:
return "red"
else:
return "lightblue"
top_countries_df = (
df
.select_columns(["country_region", "value"])
.groupby(["country_region"])
.aggregate("sum")
.sort_values("value", ascending=False)
.reset_index()
.head(20)
.transform_column(
column_name="country_region",
function=lambda x: set_color(x),
dest_column_name="color"
)
)
sns.barplot(
data=top_countries_df,
x="value",
y="country_region",
hue="color",
palette=["lightblue", "red"]
)
plt.xlabel("Value")
plt.ylabel("Country Region")
plt.title("Latam countries in a global context");