R ggplot2 3并排柱状图

R ggplot2 3并排柱状图,r,ggplot2,R,Ggplot2,我是R新手,已经成功创建了以下数据帧 MinVariance MaxSharpe RiskParity HYLD 0.44 0.00 0.28 IBTL 0.00 0.07 0.11 IBTM 0.36 0.00 0.15 SGLN 0.00 0.56 0.12 SLXX 0.20 0.00 0.20 VMV

我是R新手,已经成功创建了以下数据帧

MinVariance MaxSharpe RiskParity

HYLD       0.44      0.00       0.28

IBTL        0.00      0.07       0.11

IBTM        0.36      0.00       0.15

SGLN        0.00      0.56       0.12

SLXX        0.20      0.00       0.20

VMVL        0.00      0.36       0.14

我想在一个图中(并排)创建3个直方图,显示每个资产分配的权重

使用
geom\u直方图和
facet\u wrap
尝试使用包
ggplot2
facet\u wrap
这里有一个道奇条形图的方法(你不需要离散变量的直方图):

dfr%
pivot_longer(,cols=-type,name_to='vars',values_to='vals'))
德富隆
#>#tibble:18 x 3
#>类型变量VAL
#>            
#>1 Hyd最小方差0.44
#>2 Hyd MaxSharpe 0
#>3 Hyd风险平价0.28
#>4 IBTL最小方差0
#>5 IBTL MaxSharpe 0.07
#>6 IBTL风险平价0.11
#>7 IBTM最小方差0.36
#>8 IBTM MaxSharpe 0
#>9 IBTM风险平价0.15
#>10新元最小方差0
#>11 SGLN MaxSharpe 0.56
#>12新加坡元风险平价0.12
#>13 SLXX最小方差0.2
#>14 SLXX MaxSharpe 0
#>15 SLXX风险平价0.2
#>16 VMVL最小方差0
#>17 VMVL最大夏普0.36
#>18 VMVL风险平价0.14
dfr_长%>%
ggplot(aes(x=vars,y=VAL,fill=type))+
几何坐标(位置='dodge')

要绘制直方图,您可以使用

library(tidyverse)

dfr %>% as_tibble(rownames = 'type') %>%  
  pivot_longer(., cols = -type, names_to = 'vars', values_to = 'vals') %>% 
  ggplot() +
  geom_histogram(aes(vals, fill = type)) + facet_wrap(vars~.)

更新

资料
您必须将数据回流到长格式(请参阅,即
tidyr::pivot\u longer
)您可以使用
geom_col
将x和y映射到新创建的变量。这不是直方图,而是条形图。这是一个非常有趣的数据演示,我将尝试为每个分配策略分离一个,以清晰明了谢谢!您好,Bappa是的,这正是我一直在寻找的,但希望y轴上的VAL类型为x轴,重复每个资产配置策略为每个直方图。在这种情况下,它将不是直方图,而是条形图。看我的更新,这是你想要的吗。别忘了把它当作礼物来接受。谢谢,埃里克
dfr %>% as_tibble(rownames = 'type') %>%  
  pivot_longer(., cols = -type, names_to = 'vars', values_to = 'vals') %>% 
  ggplot() +
  geom_col(aes(y = vals, x = type)) + facet_wrap(vars~.)
dfr = structure(list(MinVariance = c(0.44, 0, 0.36, 0, 0.2, 0), MaxSharpe = c(0, 
0.07, 0, 0.56, 0, 0.36), RiskParity = c(0.28, 0.11, 0.15, 0.12, 
0.2, 0.14)), class = "data.frame", row.names = c("HYLD", "IBTL", 
"IBTM", "SGLN", "SLXX", "VMVL"))