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

时间:2018-01-19 21:20:55

标签: python r plot ggplot2 plotnine

所以,我是一个长期的R用户,最近过渡到Python,我一直试图通过ggplot2来完成我的绘图知识,因为它非常直观。 Plotnine被认为是ggplot2-esque绘图库中最多的,我用它成功地重建了大多数图形,除了关键如何绘制常规函数。

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

那么我如何用plotnine绘制函数?以上两个障碍是与ggplot2的两个不同之处,我认为这给我带来了麻烦,我很感激任何有关此事的帮助,因为情节在网上的例子很少。

P.S。这是我想用Python使用plotnine重新创建的例子:

> 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

2 个答案:

答案 0 :(得分:4)

你不需要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 :(得分:1)

导致我出现问题的主要差异之一与问题中发布的相同。具体做法是:

在R中

    aes(x = x)或aes(x)

在情节中     aes(x ='x')