首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R叠加面积图中的巧妙标号

R叠加面积图中的巧妙标号
EN

Stack Overflow用户
提问于 2016-02-12 20:41:58
回答 1查看 3.4K关注 0票数 2

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

这是链接到我的数据

要生成上述ggplot2图表的巧妙版本,我首先必须在上一列就像这样中的值之上添加elw中的每一列的值。这是因为巧妙地(据我所知)无法在区域图表中自动堆叠值。

使用这个新的堆叠数据集elw_stack,我使用以下代码来绘制我的图表:

代码语言:javascript
复制
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。是否有办法解决这个问题,使标签不是累积值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-14 06:07:47

我遇到了类似的问题,最终决定不使用ggplotly,而是使用plot_ly函数。下面是我与您的数据一起使用的代码:

代码语言:javascript
复制
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循环添加不同的跟踪。我想要编写一个函数,该函数以具有任意数量列的数据帧作为输入,并返回堆叠的区域图,但出于某种原因,该图不会显示所有的跟踪(只显示第一次和最后一次)。

希望能帮上忙..。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35371828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档