我试图做一个堆叠的面积图,在R完全一样,这个ggplot2一个(以下)只使用巧妙。

这是链接到我的数据。
要生成上述ggplot2图表的巧妙版本,我首先必须在上一列就像这样中的值之上添加elw中的每一列的值。这是因为巧妙地(据我所知)无法在区域图表中自动堆叠值。
使用这个新的堆叠数据集elw_stack,我使用以下代码来绘制我的图表:
el_plot2 = ggplot() +
geom_area(aes(elw_stack$year, elw_stack$x99999, fill = 'green')) +
geom_area(aes(elw_stack$year, elw_stack$x20000, fill = 'red')) +
geom_area(aes(elw_stack$year, elw_stack$x19000, fill = 'blue')) +
geom_area(aes(elw_stack$year, elw_stack$x12018, fill = 'purple')) +
geom_area(aes(elw_stack$year, elw_stack$x10006, fill = 'yellow'))
ggplotly(el_plot2)该代码生成以下图表:

问题是,这些标签巧妙地引用了累积的elw_stack值。图中1999年的绿色值实际上是3700(即11,365 - 7957)。但描述栏显示的累计值为11,365。是否有办法解决这个问题,使标签不是累积值?
发布于 2016-02-14 06:07:47
我遇到了类似的问题,最终决定不使用ggplotly,而是使用plot_ly函数。下面是我与您的数据一起使用的代码:
elw <- read.csv("elw.csv")
elw_stack <- read.csv("elw_stack.csv")
plot <- plot_ly(data=elw_stack, x=year, y=x10006, fill="tonexty", mode="lines",
text=round(elw$x10006, 0), hoverinfo='x+text+name', name="x10006")
plot <- add_trace(plot, data=elw_stack, x=year, y=x12018, fill="tonexty", mode="lines",
text=round(elw$x12018,0), hoverinfo='x+text+name', name="x12018")
plot <- add_trace(plot, data=elw_stack, x=year, y=x19000, fill="tonexty", mode="lines",
text=round(elw$x19000,0), hoverinfo='x+text+name', name="x19000")
plot <- add_trace(plot, data=elw_stack, x=year, y=x20000, fill="tonexty", mode="lines",
text=round(elw$x20000,0), hoverinfo='x+text+name', name="x20000")
plot <- add_trace(plot, data=elw_stack, x=year, y=x99999, fill="tonexty", mode="lines",
text=round(elw$x99999,0), hoverinfo='x+text+name', name="x99999")
plot <- layout(plot, yaxis=list(title="Whatever title you wanna use"))最后的情节是这样的:
平缓图像
我无法工作的是使用for循环添加不同的跟踪。我想要编写一个函数,该函数以具有任意数量列的数据帧作为输入,并返回堆叠的区域图,但出于某种原因,该图不会显示所有的跟踪(只显示第一次和最后一次)。
希望能帮上忙..。
https://stackoverflow.com/questions/35371828
复制相似问题