Позиционирование столбца сгруппированной гистограммы в ggplot (plotnine) с помощью Position_dodge2 в случае отсутствия нPython

Программы на Python
Ответить
Anonymous
 Позиционирование столбца сгруппированной гистограммы в ggplot (plotnine) с помощью Position_dodge2 в случае отсутствия н

Сообщение Anonymous »

У меня есть сгруппированная гистограмма с двумя группами. Если в каком-либо случае для определенного столбца нет наблюдений, центрируется другой столбец группы. Я не могу найти способ обойти это. Я бы хотел, чтобы для столбца с высотой 0 просто отсутствовало пространство вместо того, чтобы оставшееся было центрировано.
Текущий визуальный элемент
Желаемый визуальный элемент
import plotnine as pn
import pandas as pd

data = pd.read_csv("starwars.csv") # https://github.com/tidyverse/dplyr/blob ... arwars.csv
hw = data["homeworld"].value_counts().head(6)
data = data.merge(hw, left_on="homeworld", right_on="homeworld")

# Local data adjustments
data = data.dropna(subset=["gender"])

# reorder: default = by x axis name, we want order by male count
order = data["homeworld"].value_counts().index.tolist()

(
pn.ggplot(data, pn.aes(x="factor(homeworld)", fill="factor(gender, ['male', 'female'])"))
+ pn.geom_bar(position=pn.position_dodge2(preserve = "single", padding = 0))
+ pn.scale_fill_manual({"male": pf.color.BLUE, "female": pf.color.RED})
+ pn.scale_x_discrete(limits=order)
+ pn.scale_y_continuous(expand = (0,0))
+ pn.labs(
title = "Difference between males and females",
y = "Count", x = "Homeworld",
fill = 'Gender',
caption = "There is a significant difference between the number of males and females on Naboo and Tatooine.",
)
+ pn.theme(**pf.style.grid(x=False, y=True, plotnine=True))
)


Подробнее здесь: https://stackoverflow.com/questions/791 ... -dodge2-in
Ответить

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

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

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

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

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