R中的现金流图?
在解释金融工程中的衍生品时,经常使用现金流图。它显示了不同时间的回报。我在网上找不到一个很好的例子,但它看起来像这样: 我想使用R中的现金流图?,r,ggplot2,R,Ggplot2,在解释金融工程中的衍生品时,经常使用现金流图。它显示了不同时间的回报。我在网上找不到一个很好的例子,但它看起来像这样: 我想使用ggplot2制作大致相同的东西。我的想法是使用一个堆叠,其中零轴在中间的某个地方。有人知道怎么做吗 以下是一些示例数据: data.frame(time=c(1, 2, 3), positive=c(5, 0, 4), negative=c(-2, 0, 0)) 编辑: 感谢哈德利的回答;生成的图像如下所示: 对于框,它看起来像: 我曾向Khanh建议过一次。这
ggplot2
制作大致相同的东西。我的想法是使用一个堆叠,其中零轴在中间的某个地方。有人知道怎么做吗
以下是一些示例数据:
data.frame(time=c(1, 2, 3), positive=c(5, 0, 4), negative=c(-2, 0, 0))
编辑:
感谢哈德利的回答;生成的图像如下所示:
对于框,它看起来像:
我曾向Khanh建议过一次。这可能是您的第一个补丁:) 一个问题,我认为,你可能不希望全轴在任何一方——长期零点在X轴上会太少,而对于标准债券来说,优惠券和票面金额之间的不同支付也可能看起来很奇怪。 再说一次,这是R,财富(“尤达”)仍然适用。这里有一个尝试
ggplot(df, aes(time, xend = time)) +
geom_segment(aes(y = 0, yend = positive, colour = "positive"),
position = "stack", arrow = arrow()) +
geom_segment(aes(y = 0, yend = negative, colour = "negative"),
position = "stack", arrow = arrow()) +
scale_colour_manual("Direction",
values = c("negative" = "red", "positive" = "black"))
但是我认为你真的需要自己堆叠这些值,因为你不能用ggplot2获得足够的控制权。好主意。让我们看看我们想出了什么,然后想想补丁。太好了!谢谢你,哈德利。虽然我不清楚,但实际上我想要“条”,但我只是将您的解决方案改为使用
geom_rect
,它就可以工作了<代码>ggplot(df,aes(time,xend=time))+geom_rect(aes(xmin=time,xmax=time+1,ymin=0,ymax=positive,fill=“positive”)+geom_rect(aes(xmin=time,xmax=time+1,ymin=0,ymax=负数,fill=“负数”)+scale_手动(“方向”,数值=c(“负数”=“红色”,“正数”=“黑色”)