Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将几何图形栏更改为百分比,而不是计数_R_Ggplot2_Plotly_Geom Bar - Fatal编程技术网

R 将几何图形栏更改为百分比,而不是计数

R 将几何图形栏更改为百分比,而不是计数,r,ggplot2,plotly,geom-bar,R,Ggplot2,Plotly,Geom Bar,我正在使用ggplot制作一个带有条形图的交互式时间序列,然后将其转换为plotly。每个条代表一年16、17和18(data_long.edad),我根据Ocuption(data_long.ocup)给它们上色。 我的图表显示了计数,但我希望能够显示每个条的百分比(每个条加起来应该是100%) 我尝试过很多方法,但都失败了。 我的问题与这个问题非常相似,但我无法使这个解决方案起作用。我不能转换我的数据(可能是因为在我的例子中我有因子变量?) 有什么想法吗 > head(df,20)

我正在使用ggplot制作一个带有条形图的交互式时间序列,然后将其转换为plotly。每个条代表一年16、17和18(data_long.edad),我根据Ocuption(data_long.ocup)给它们上色。 我的图表显示了计数,但我希望能够显示每个条的百分比(每个条加起来应该是100%) 我尝试过很多方法,但都失败了。 我的问题与这个问题非常相似,但我无法使这个解决方案起作用。我不能转换我的数据(可能是因为在我的例子中我有因子变量?)

有什么想法吗

>   head(df,20)
    data_long.edad         data_long.ocup
1             a16r        Oc. de limpieza
2             a18r         Aún no ingesa al ML
3             a18r       Aún no ingesa al ML
4             a17r   Aún no ingesa al ML
5             a17r   Aún no ingesa al ML
6             a16r  Oficiales y operarios
7             a17r   Aún no ingesa al ML
8             a17r   Aún no ingesa al ML
9             a17r   Trab. de los servicios
10            a16r    Aún no ingesa al ML
11            a16r Trab. de los servicios
12            a16r    Aún no ingesa al ML
13            a18r       Administrativos
14            a18r       Oficiales y operarios
15            a16r      Trab. calificados
16            a18r       Aún no ingesa al ML
17            a18r       Aún no ingesa al ML
18            a18r       Aún no ingesa al ML
19            a16r  Oficiales y operarios
20            a16r    Aún no ingesa al ML




  gocup <-  ggplot(df, aes(x=data_long.edad)) +
    geom_bar(aes(fill=factor(data_long.ocup))) +
    ggtitle("Trayectorias ocupacionales") 
  
  gocup
  
  rm (ocuint)
  ocupint = ggplotly(p= gocup, tooltip= c("x", "y")) %>%
    style(hoverlabel = labels) %>%
    layout(font = TRUE,
           yaxis = list(fixedrange = TRUE),
           showlegend = TRUE,
           legend=list(title=list(text='<b> Ocupación </b>')),
           xaxis = list(fixedrange = TRUE)) %>%
    config(displayModeBar = FALSE)
  
  ocupint 
>头部(df,20)
数据长.edad数据长.ocup
1 a16r Oc。德林皮耶萨
2 a18r Aún no ingesa al ML
3 a18r Aún号ingesa al ML
4 a17r Aún号ingesa al ML
5 a17r Aún号ingesa al ML
6 a16r商业和运营部
7 a17r Aún号ingesa al ML
8 a17r Aún no ingesa al ML
9 a17r-Trab。德洛斯塞维西奥斯酒店
10 a16r Aún号ingesa al ML
11 a16r-Trab。德洛斯塞维西奥斯酒店
12 a16rún号ingesa al ML
13 a18r管理系统
14商业和运营部a18r
15 a16r-Trab。加利福尼亚州
16 a18r Aún no ingesa al ML
17 a18r Aún no ingesa al ML
18 a18r Aún no ingesa al ML
19 a16r商业和运营部
20 a16r Aún no ingesa al ML
gocup%
样式(hoverlabel=标签)%>%
布局(font=TRUE,
yaxis=list(fixedrange=TRUE),
showlegend=TRUE,
图例=列表(标题=列表(文本='Ocupación')),
xaxis=list(fixedrange=TRUE))%>%
配置(displayModeBar=FALSE)
眼病
我的图表是这样的,我想要的是百分比,而不是计数,每一条上升到100。 (此图显示的年份和职业比我提供的数据示例多,但数据结构相同)

您可以在
geom\u bar()调用中使用
position=“fill”
。这将使所有内容都达到100%:

#来自一些随机数据
tibble(a=样本(字母[1:10],5000,替换=真),
b=样本(字母[1:10],5000,替换为真))%>%
ggplot(aes(a,填充=b))+
几何钢筋(位置=“填充”)+
连续缩放(name=“百分比”,
断裂=c(0,0.5,1),
标签=比例::百分比(c(0,0.5,1)))
这使用了其他解决方案中的一些符号来表示百分比:


您可以在
geom\u bar()调用中使用
position=“fill”
。这将使所有内容都达到100%:

#来自一些随机数据
tibble(a=样本(字母[1:10],5000,替换=真),
b=样本(字母[1:10],5000,替换为真))%>%
ggplot(aes(a,填充=b))+
几何钢筋(位置=“填充”)+
连续缩放(name=“百分比”,
断裂=c(0,0.5,1),
标签=比例::百分比(c(0,0.5,1)))
这使用了其他解决方案中的一些符号来表示百分比:


安德鲁是对的。您还可以在scale\u y\u continuous函数中包含name=“Percent”,以将工时“count”更改为“Percent”。很好,我很懒!安德鲁是对的。您还可以在scale\u y\u continuous函数中包含name=“Percent”,以将工时“count”更改为“Percent”。很好,我很懒!