标签: plotnine

在 plotnine 中使用定性啤酒调色板的问题

我想使用 plotnine 使用 brewer 定性调色板,但出现错误:

ValueError: Invalid color map name 'Set1' for type 'Sequential'.
Valid names are: ['Blues', 'BuGn', 'BuPu', 'GnBu', 'Greens', 'Greys', 'OrRd', 'Oranges', 'PuBu', 'PuBuGn', 'PuRd', 'Purples', 'RdPu', 'Reds', 'YlGn', 'YlGnBu', 'YlOrBr', 'YlOrRd']
Run Code Online (Sandbox Code Playgroud)

可重现的例子

 from plotnine import *
 import pandas as pd

 df = pd.DataFrame({'a': [0,1,2,3,4], 'b': [0,-2,10,6,8], 'c': ['a', 'b',  'a', 'a', 'b']})

 (ggplot(df, aes(x = 'a', y = 'b', color = 'factor(c)')) +
geom_line() +
scale_color_brewer(palette = 'Set1'))
Run Code Online (Sandbox Code Playgroud)

但是,在 R 中的 ggplot2 中,您可以执行相同操作并获得正确的绘图

 library(ggplot2)

 df = …
Run Code Online (Sandbox Code Playgroud)

python plotnine

6
推荐指数
1
解决办法
1219
查看次数

出现 ModuleNotFoundError:在 Jupyter Notebook 上导入时没有名为“plotnine”的模块

我正在按照plotnine 教程在 Jupyter Notebook 上进行一些绘图。但是当我导入时

from plotnine import *

我收到一个错误:ModuleNotFoundError: No module named 'plotnine'

我是 Jupyter 和plotnine 的新手。尝试过不同的搜索,但仍然不知道如何解决这个问题......

python jupyter-notebook plotnine

6
推荐指数
1
解决办法
1万
查看次数

有没有办法防止 plotnine 在将 ggplot 对象保存到文件时打印用户警告?

我正在用 python 构建一个模拟工具,它使用 plotnine 输出许多图。但是,对于我保存的每个单独的图,我收到以下错误消息:

C:\Users\tarca\Anaconda3\lib\site-packages\plotnine\ggplot.py:706: UserWarning: Saving 10 x 3 in image.
  from_inches(height, units), units))

C:\Users\tarca\Anaconda3\lib\site-packages\plotnine\ggplot.py:707: UserWarning: Filename: my_plot.png
  warn('Filename: {}'.format(filename))
Run Code Online (Sandbox Code Playgroud)

我已经尝试手动设置所有参数,并且尝试使用 plot.save() 和 ggsave() 保存文件 - 两者都产生相同的结果。如果您搜索错误,唯一会出现的是以下教程的作者会遇到相同的错误,尽管其中没有解决这些错误:

https://monashdatafluency.github.io/python-workshop-base/modules/plotting_with_ggplot/

为了保存图,我使用了类似于以下内容的代码:

plot.save(filename = 'my_plot.png', width = 10, height = 3, dpi = 300)
Run Code Online (Sandbox Code Playgroud)

我希望能够保存这些图,而不会产生任何可能使使用该程序的人感到困惑的烦人消息。

python ggplot2 plotnine

6
推荐指数
1
解决办法
1071
查看次数

使用 Plotnine 按排序顺序绘图

我有一个正在尝试绘制的数据框。我希望数据点在图中沿 x 轴按排序顺序显示。我尝试在将数据帧传递给 ggplot 之前对其进行排序,但是我的订单被忽略。我的数据如下,我想按“值”属性排序。

       var1     var2  value     direction
0      PM25     PBAR  0.012001          1
1      PM25  DELTA_T  0.091262          1
2      PM25       RH  0.105857          1
3      PM25      WDV  0.119452          0
4      PM25     T10M  0.119506          0
5      PM25      T2M  0.129869          0
6      PM25     SRAD  0.134718          0
7      PM25      WSA  0.169000          0
8      PM25      WSM  0.174202          0
9      PM25      WSV  0.181596          0
10     PM25      SGT  0.263590          1
Run Code Online (Sandbox Code Playgroud)

这就是我的代码目前的样子:

tix = np.linspace(0,.3,10)
corr = corr.sort_values(by='value').reset_index(drop = True)
p = ggplot(data = corr, mapping = …
Run Code Online (Sandbox Code Playgroud)

python ggplot2 pandas plotnine

6
推荐指数
1
解决办法
7053
查看次数

Plotnine 将文本换行为分面换行

我正在绘制一个带有很长标签的多面图。我正在将一些代码从 R 翻译成 python。我希望将 x 轴的文本包裹在多行中。我在下面展示了 R 代码。

R代码

q <- ggplot() + ...
q + scale_x_discrete(labels = function(x) str_wrap(x, width = 8)) 

Run Code Online (Sandbox Code Playgroud)

是否有使用plotnine 的等价物?

python plotnine

6
推荐指数
1
解决办法
445
查看次数

使用Platenine保存高分辨率图像

我正在尝试使用plotnine保存高分辨率的png图像。

对于测试数据集,它看起来像:

from plotnine import *
import pandas as pd
import numpy as np

df = pd.DataFrame()
df['x'] = np.arange(0,10,0.01)
df['y'] = np.sin(df['x'])

p = ggplot(df, aes(x='x',y='y')) + labs(x='x', y='y') + geom_point(size=0.1)
p.save(filename = 'test3.png', height=5, width=5, units = 'in', dpi=1000)
Run Code Online (Sandbox Code Playgroud)

这将生成一个包含我的图的低分辨率.png文件,当我增加指定的dpi时,该文件不会得到改善。

我也试着拯救:

ggsave(plot=p, filename='test.png', dpi=1000)
Run Code Online (Sandbox Code Playgroud)

并替换dpi=1000res=1000。这将产生相同的低分辨率png文件。

如何以所需的分辨率保存绘图?

编辑:此错误已在plotnine版本0.3.0中解决。并且上面的代码正常工作。

python ggplot2 plotnine

5
推荐指数
1
解决办法
1800
查看次数

plotnine - 在同一个图中有两个图并打印它的任何解决方法

我使用plotninein python绘制了两个图。我知道并不真正支持绘制子图(here)。我想知道是否有办法解决并在一个图中创建子图。

plotineplot.draw()想把它们做成图,然后用 matplotlib 读取,或者先将它们保存为 png,然后用 matplotlib 读取它们并将它们放在一起。但是,我对 matplotlib 不是很方便,到现在为止的每一次尝试都是徒劳的。

示例 plotnine 图:

from plotnine import data
from plotnine import *

plot1 = (ggplot(data.mtcars, aes('wt', 'mpg', color='factor(gear)'))
 + geom_point()
 + stat_smooth(method='lm')
 + facet_wrap('~gear'))
Run Code Online (Sandbox Code Playgroud)

任何帮助都会非常有帮助。

python matplotlib plotnine

5
推荐指数
2
解决办法
2858
查看次数

如何更改y轴以在Python Plotnine barplot中显示百分比(%)?

如何使用python中的Plotnine库将y轴更改为百分比,而不是分数?

小节的MWE如下:

from plotnine import *
from plotnine.data import mpg

p = ggplot(mpg) + geom_bar(aes(x='manufacturer', fill='class'), position='fill')
print(p)
Run Code Online (Sandbox Code Playgroud)

如下图所示:

y轴为分数而非百分比的堆积条形图

在R中使用ggplot2很简单,只需添加:

+ scale_y_continuous(labels = scales::percent)
Run Code Online (Sandbox Code Playgroud)

但是,我无法在Plotnine中找到如何做到这一点。

有什么建议吗?

python visualization bar-chart data-science plotnine

5
推荐指数
2
解决办法
801
查看次数

Plotnine:如何在绘制图形时删除 ggplot:(xxx) 类型烦人的文本输出

  • 运行 jupyter notebook (python)
  • 使用 Python Plotnine库绘图
  • 我绘制并在输出图形下方是烦人的“ggplot2:(数字)”输出
  • 通常你会;在你的笔记本单元格的末尾放一个,但是当我使用 Plotnine 时它似乎并没有抑制烦人的输出文本(但它显然适用于 matplotlib 等)

有任何想法吗 ?

python ggplot2 jupyter-notebook plotnine

5
推荐指数
1
解决办法
676
查看次数

python的ggplotly函数

其中R有一个函数 ( ggplotly),可将ggplot2绘图转换为plotly图形。在python您必须plotnine使用ggplot,但是否有类似的转换器ggplotly

有一个类似的问题,但询问的是旧的(我认为已弃用的)python 库,因此我认为我的问题是相关的。

ggplot2 plotly plotnine ggplotly

5
推荐指数
0
解决办法
214
查看次数