如何使用plotnine库在Python中绘制函数图形

4

我一直是个长期使用R的用户,最近转向Python,并且一直在尝试将我在ggplot2中绘图的知识移植过来,因为它非常直观。据说Plotnine是最接近ggplot2的绘图库,我已经成功用它重新创建了大多数图形,但是关键是如何绘制常规函数。

在基本的R中,您可以轻松地定义一个方程,例如这样,将结果输入到stat_function()层中,并将图形的限制设置在data参数的位置,成功地绘制抛物线或类似的图形。然而,在Python中设置图形的限制的语法必须不同(也许使用numpy?),并且方程是使用sympy定义的,这对我来说是另一个分歧。

那么我该如何使用plotnine绘制函数呢?上述两个障碍是我认为导致我困扰的与ggplot2不同之处,因为plotnine在线上的示例非常少。

P.S. 这是我想要使用plotnine在Python中重新创建的示例:

> library(ggplot2)
> basic_plot <- function(x) x^2 + 2.5
> graph <- ggplot(data.frame(x=c(-5,5)), aes(x=x)) +
+ stat_function(fun = basic_plot)
> graph

你能提供一些样本数据吗?或者在 R 中提供一个 [mcve] ? - pault
当然,我刚刚在我的问题中添加了一个编辑。 - Coolio2654
2个回答

5
您不需要numpy,使用“标准”方式也可以正常工作! :)
from plotnine import *
import pandas as pd

(ggplot(pd.DataFrame(data={"x": [-5, 5]}), aes(x="x"))
    + stat_function(fun=lambda x: x**2+2.5))

enter image description here


1

引起我困惑的主要差异与问题中发布的相同。具体来说:

在R中     aes(x = x)或aes(x)

在plotnine中     aes(x ='x')


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接