ggplot в python: размер и цвет графика

Близкие,

Я пытаюсь использовать ggplot в python.

from ggplot import *
ggplot(diamonds, aes(x='price', fill='cut')) + geom_density(alpha=0.25) + facet_wrap("clarity")

Пара вещей, которые я пытаюсь сделать:

1) Я ожидал, что цвет будет как для заливки, так и для линий, но, как видите, цвет весь серый

2) Я пытаюсь настроить размер графика. В R я бы запустил это перед сюжетом:

options(repr.plot.width=12, repr.plot.height=4)

Однако здесь это не работает.

Кто-нибудь знает, как мне раскрасить дистрибутив, а также изменить размер графика?

Спасибо. Текущий вывод прилагается.

введите здесь описание изображения


person Trexion Kameha    schedule 05.09.2017    source источник


Ответы (4)


Цвет

Используйте color вместо заливки. например.;

from ggplot import *
ggplot(diamonds, aes(x='price', color='cut')) + geom_density(alpha=0.25) + facet_wrap("clarity")

Размер

Несколько способов сделать это.

Проще всего с ggsave - посмотрите документацию.

В качестве альтернативы используйте theme с аргументом plot_margin:

ggplot(...) ... + theme(plot_margin = dict(right = 12, top=8))

Или используйте настройки matplotlib:

import matplotlib as mpl
mpl.rcParams["figure.figsize"] = "11, 8"
ggplot(...) + ...

Надеюсь, это помогло!

person Jared Wilber    schedule 05.09.2017
comment
Цвет, конечно, помогает, с размером нужно немного повозиться, но, тем не менее, это решает мою проблему. Я недостоин! Я недостоин! Я недостоин! - person Trexion Kameha; 05.09.2017
comment
mpl.rcParams["figure.figsize"] = "11, 8" у меня не сработало. Работаю в Jupyer Notebook. - person Marta Karas; 17.07.2019
comment
@MartaKaras Мне нравится решение Родольфо ниже, добавляющее размер фигуры к теме с помощью plotnine/ggplot. Это работает для меня в Jupyter Notebook. Я предполагаю, что вы уже объявляете следующее для ноутбука jupyter: %matplotlib inline - person windyvation; 26.02.2021

Используйте самую последнюю версию ggplot2 для Python: plotnine.

Чтобы изменить размер графика, используйте этот параметр темы: figure_size (ширина, высота). Ширина и высота указаны в дюймах.

Обратитесь к документации этой библиотеки: https://plotnine.readthedocs.io/en/stable/generated/plotnine.themes.themeable.figure_size.html#plotnine.themes.themeable.figure_size

См. следующий пример:

from plotnine import *

(ggplot(df) 
 + aes(x='column_X', y='column_Y', color = 'column_for_collor')    
 + geom_line()
 + theme(axis_text_x = element_text(angle = 45, hjust = 1))
 + facet_wrap('~column_to_facet', ncol = 3)   # ncol to define 3 facets per line
 + theme(figure_size=(16, 8))  # here you define the plot size
)
person Rodolfo Bugarin    schedule 05.02.2021

Это главный ответ, который появляется в Google при поиске, как увеличить размер plotnine графика. Ни один из ответов не помог мне, но увеличил размер фигуры:

from plotnine import *
from plotnine.data import diamonds
ggplot(diamonds, aes(x='price', color='cut')) + geom_density(alpha=0.25) + facet_wrap("clarity") + theme(figure_size = (10, 10))
person User2321    schedule 15.01.2021

Другое решение, если вы не хотите изменять конфигурацию matplotlib:

from ggplot import *
from matplotlib import pyplot as plt

p = (ggplot(diamonds,
          aes(x='x', y='y', color='cut', fill='cut')) +
     geom_point() +
     facet_wrap(x='cut'))

# This command "renders" the figure and creates the attribute `fig` on the p object
p.make()

# Then you can alter its properties
p.fig.set_size_inches(15, 5, forward=True)
p.fig.set_dpi(100)
p.fig

# And display the final figure
plt.show()
person Gustavo Rauscher    schedule 08.05.2019