4

我是一个长期的 R 用户,最近过渡到 Python,我一直在尝试继承我使用 ggplot2 绘图的知识,因为它非常直观。Plotnine应该是最具 ggplot2 风格的绘图库,我已经成功地用它重新创建了大多数图表,除了如何绘制常规函数。

在 base R 中,您可以轻松定义一个 eq.,如so,将结果输入一个stat_function()层,并设置图形的限制来代替dataarg.,并成功绘制抛物线等。但是,在 Python 中设置图形限制的语法必须不同(可能使用 numpy?),并且方程是使用 定义的sympy,这对我来说是另一个分歧。

那么我将如何使用 plotnine 绘制函数呢?上面的两个障碍是我认为给我带来麻烦的与 ggplot2 的两个不同之处,因为 plotnine 网上的例子太少了。

PS这是我想用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
4

2 回答 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))

在此处输入图像描述

于 2018-01-19T23:13:45.860 回答
1

导致我出现问题的主要区别之一与问题中发布的相同。具体来说:

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

在 plotnine aes(x = 'x')

于 2018-05-30T08:18:22.440 回答