0

看起来与我正在寻找的答案相当接近,但并不完全存在。也许我没有遵循“整洁数据”原则,并且需要在许多点上评估数据框来绘制这些函数,但我犹豫是否接受它作为答案。

这是绘制我拥有的图表的代码。

call_value_per_unit = lambda s_t1,X: max(0, s_t1-X)
put_value_per_unit = lambda s_t1, X: max(0, X-s_t1)
put_call_value = lambda s_t1, X: put_value_per_unit(s_t1, X) + call_value_per_unit(s_t1, X)

independent_variable = "Stock Price"
dependent_variable = "Asset Price"

g = ggplot(pd.DataFrame({independent_variable:[10,20]}), aes(x=independent_variable)) \
         + stat_function(fun=put_value_per_unit, args=[15], color="red") \
         + stat_function(fun=call_value_per_unit, args=[15], color="blue") \
         + stat_function(fun=put_call_value, args=[15], color="black") \
         + ylab(dependent_variable) \
         + ggtitle(" ".join([independent_variable , "vs", dependent_variable]))
_ = g.draw()

但是没有传说……我希望有一个。

(虽然我在python,R用户可能会有很好的建议)

4

2 回答 2

1

在 R 中,要使用 package 绘制函数ggplot2,首先定义一个带有x向量的数据集。然后stat_function与适当的geom. 这通常是其中之一

  • geom = "line"
  • geom = "point"

然后,绘制函数非常简单。

library(ggplot2)

df1 <- data.frame(x = -5:5)

ggplot(df1, aes(x)) +
  stat_function(geom = "line", fun = function(x) x^2)

在此处输入图像描述

于 2020-04-20T11:29:28.980 回答
1

不可能在一个图中绘制多个函数并为每个函数都有一个图例。因为stat_function,func是一个参数而不是美学参数,因此您不能将变量/列映射到它。图例仅有助于解释美学映射。

由于您想要进行大量计算,请在绘图调用之外执行此操作,然后使用geom_line. 确保您的数据框采用整洁的数据形式。stat_function当它不是工作的最佳工具时,不要让你使用它的事实。

于 2020-04-20T14:32:45.960 回答