我想使用 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) 我正在按照plotnine 教程在 Jupyter Notebook 上进行一些绘图。但是当我导入时
from plotnine import *
我收到一个错误:ModuleNotFoundError: No module named 'plotnine'
。
我是 Jupyter 和plotnine 的新手。尝试过不同的搜索,但仍然不知道如何解决这个问题......
我正在用 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)
我希望能够保存这些图,而不会产生任何可能使使用该程序的人感到困惑的烦人消息。
我有一个正在尝试绘制的数据框。我希望数据点在图中沿 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) 我正在绘制一个带有很长标签的多面图。我正在将一些代码从 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 的等价物?
我正在尝试使用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=1000
为res=1000
。这将产生相同的低分辨率png文件。
如何以所需的分辨率保存绘图?
编辑:此错误已在plotnine版本0.3.0中解决。并且上面的代码正常工作。
我使用plotnine
in 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中的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)
如下图所示:
在R中使用ggplot2很简单,只需添加:
+ scale_y_continuous(labels = scales::percent)
Run Code Online (Sandbox Code Playgroud)
但是,我无法在Plotnine中找到如何做到这一点。
有什么建议吗?
;
在你的笔记本单元格的末尾放一个,但是当我使用 Plotnine 时它似乎并没有抑制烦人的输出文本(但它显然适用于 matplotlib 等)有任何想法吗 ?
其中R
有一个函数 ( ggplotly
),可将ggplot2
绘图转换为plotly
图形。在python
您必须plotnine
使用ggplot
,但是否有类似的转换器ggplotly
?
有一个类似的问题,但询问的是旧的(我认为已弃用的)python 库,因此我认为我的问题是相关的。
plotnine ×10
python ×9
ggplot2 ×5
bar-chart ×1
data-science ×1
ggplotly ×1
matplotlib ×1
pandas ×1
plotly ×1