Как построить график функции в Python с использованием библиотеки plotnine

Итак, я давний пользователь R, недавно перешел на Python, и я пытался перенести свои знания в области черчения с помощью ggplot2, поскольку он настолько интуитивно понятен. Plotnine, предположительно, является самой ggplot2-esque библиотекой для построения графиков, и я успешно воссоздал с ней большинство графиков, за исключением критически важных способов построения регулярных функций.

В базе R вы можете легко определить уравнение, например, ввести результат в stat_function() слой, и установите границы графика вместо data и успешно построить параболу или тому подобное. Тем не менее, синтаксис для установки границ графа должен быть другим в Python (возможно, с использованием Numpy?), А уравнения определяются с помощью sympy, что является еще одним расхождением для меня.

Итак, как бы я пошел о построении функций с помощью plotnine? Вышеупомянутые два препятствия - это два отличия от ggplot2, которые, как мне кажется, доставляют мне неприятности, и я был бы признателен за любую помощь по этому вопросу, так как plotnine имеет так мало примеров в Интернете.

PS Это пример того, что я хочу воссоздать в 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 ответа

Решение

Вам не нужно 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))

Одно из главных отличий, которое вызывало у меня проблемы, было таким же, как и в вопросе. В частности:

в R aes(x = x) или aes(x)

в сюжетных линиях (х = 'х')

Другие вопросы по тегам