python中的ggplot:绘图大小和颜色

时间:2017-09-05 04:11:37

标签: python ggplot2 python-ggplot

民间,

我正在尝试在python中使用ggplot。

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)

然而,这在这里不起作用。

是否有人知道我如何在分布中着色并更改绘图大小?

谢谢。附加了当前输出。

enter image description here

3 个答案:

答案 0 :(得分:4)

为 Python 使用最新的 ggplot2:plotnine。

为了重塑情节大小,请使用此主题参数:figure_size(width, height)。宽度和高度以英寸为单位。

请参阅此库文档: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
)

答案 1 :(得分:1)

<强>颜色

使用color代替填充。 e.g;

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

<强>尺寸

有两种方法可以做到这一点。

最简单的是ggsave - 查看文档。

或者,将themeplot_margin参数一起使用:

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

或者,使用matplotlib设置:

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

希望有所帮助!

答案 2 :(得分:0)

另一种解决方案,如果您不想更改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()