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 我想做一个条形图,在y轴上有两个不同的值,在x轴上有两个不同的值_R_Ggplot2_Geom Bar - Fatal编程技术网

R 我想做一个条形图,在y轴上有两个不同的值,在x轴上有两个不同的值

R 我想做一个条形图,在y轴上有两个不同的值,在x轴上有两个不同的值,r,ggplot2,geom-bar,R,Ggplot2,Geom Bar,我一直在寻找一堆答案,但我找不到任何答案来回答我的问题。 我有以下数据集: structure(list(Quail = c("28", "28", "28", "28", "29", "29", "29", "29", "30", "30", "30", "30", "4", "4", "4", "4", "4", "5", "5", "5", "5", "5", "6", "6", "6", "6", "16", "16", "16", "16", "17", "17", "17",

我一直在寻找一堆答案,但我找不到任何答案来回答我的问题。 我有以下数据集:

structure(list(Quail = c("28", "28", "28", "28", "29", "29", 
"29", "29", "30", "30", "30", "30", "4", "4", "4", "4", "4", 
"5", "5", "5", "5", "5", "6", "6", "6", "6", "16", "16", "16", 
"16", "17", "17", "17", "17", "17", "18", "18", "18", "18", "52", 
"52", "52", "52", "53", "53", "53", "53", "54", "54", "54", "54"
), day = c(1, 3, 5, 7, 1, 3, 5, 9, 1, 3, 5, 7, 1, 3, 5, 7, 9, 
1, 3, 5, 7, 9, 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7, 9, 1, 3, 5, 
7, 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7), Group = c("var", "var", 
"var", "var", "var", "var", "var", "var", "var", "var", "var", 
"var", "varL", "varL", "varL", "varL", "varL", "varL", "varL", 
"varL", "varL", "varL", "varL", "varL", "varL", "varL", "varLQ", 
"varLQ", "varLQ", "varLQ", "varLQ", "varLQ", "varLQ", "varLQ", 
"varLQ", "varLQ", "varLQ", "varLQ", "varLQ", "varQ", "varQ", 
"varQ", "varQ", "varQ", "varQ", "varQ", "varQ", "varQ", "varQ", 
"varQ", "varQ"), Equi = c(NA, 5.966699108, 2.179348795, NA, NA, 
5.47029668, 4.606832566, 4.123227924, NA, 6.200198499, 3.807239274, 
2.121998353, NA, 6.122346998, 3.161297444, 2.618107834, 2.488914738, 
NA, 5.80659996, 3.272308721, 3.012209525, 2.750162661, NA, 5.752224579, 
4.885757526, 2.515186667, NA, 5.494711674, 4.665176685, 4.017052221, 
NA, 6.165528697, 4.969614582, 2.894064483, 2.600701052, NA, 6.368332793, 
4.316409804, 6.030505124, NA, 5.173073878, 4.038968216, 2.859379995, 
NA, NA, 4.17091987, 2.916909106, NA, 5.926815246, 5.910377652, 
NA), Norm.pi = c(5.8, 3.9, 3.1, 2.5, 4.7, 2.5, 5.1, 10.1, 3.4, 
2.8, 5.4, 2.6, 4.3, 0.9, 4, 7.3, 4.1, 5.8, 1.8, 4.2, 8.5, 20.4, 
4.6, 2.1, 4.3, 11.3, 2.5, 2.9, 4, 4.4, 2.7, 2.2, 2.7, 5.6, 4.5, 
2.5, 2, 4.5, 7.1, 5.4, 2.6, 5.1, 8.3, 6.7, 2.8, 3.6, 4.6, 5.8, 
3, 3, 6.3)), row.names = c(NA, -51L), groups = structure(list(
    Quail = c("16", "16", "16", "16", "17", "17", "17", "17", 
    "17", "18", "18", "18", "18", "28", "28", "28", "28", "29", 
    "29", "29", "29", "30", "30", "30", "30", "4", "4", "4", 
    "4", "4", "5", "5", "5", "5", "5", "52", "52", "52", "52", 
    "53", "53", "53", "53", "54", "54", "54", "54", "6", "6", 
    "6", "6"), day = c(1, 3, 5, 7, 1, 3, 5, 7, 9, 1, 3, 5, 7, 
    1, 3, 5, 7, 1, 3, 5, 9, 1, 3, 5, 7, 1, 3, 5, 7, 9, 1, 3, 
    5, 7, 9, 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7), 
    Group = c("varLQ", "varLQ", "varLQ", "varLQ", "varLQ", "varLQ", 
    "varLQ", "varLQ", "varLQ", "varLQ", "varLQ", "varLQ", "varLQ", 
    "var", "var", "var", "var", "var", "var", "var", "var", "var", 
    "var", "var", "var", "varL", "varL", "varL", "varL", "varL", 
    "varL", "varL", "varL", "varL", "varL", "varQ", "varQ", "varQ", 
    "varQ", "varQ", "varQ", "varQ", "varQ", "varQ", "varQ", "varQ", 
    "varQ", "varL", "varL", "varL", "varL"), .rows = list(27L, 
        28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 
        39L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 
        13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 40L, 
        41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 51L, 
        23L, 24L, 25L, 26L)), row.names = c(NA, -51L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = TRUE), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"))
我使用ggplot作为:

DI.pi.equi.extended %>%
  ggplot() +
    geom_bar(aes(x=day, y=Norm.pi), stat = "identity", fill = "red") +
    geom_bar(aes(x=day,y=Equi), stat = "identity") +

  theme(panel.grid.major =  element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        axis.line = element_line(colour = "black"),
        axis.text.x = element_text(),
        axis.title.y = element_text(face = "bold", size = 22),
        legend.direction = "vertical", legend.box = "horizontal") +
  scale_x_continuous(breaks = c(1,3, 5, 7, 9), limits = c(0,10))  +
    scale_y_continuous(sec.axis = sec_axis(~ . + 10)) +
  facet_grid(.~Quail + Group, scales = "free_y") 
这将生成以下堆叠图:

我想画的实际上是π。Norm和Equi并排,就像躲闪一样,但我到目前为止还不能让它工作

建议


非常感谢您。

诀窍是在打印前使用例如
tidyr::pivot\u longer
将数据集转换为长格式。试试这个:

库(ggplot2)
图书馆(dplyr)
图书馆(tidyr)
DI.pi.equi.extended%>%
tidyr::pivot_更长(c(Equi,Norm.pi),name_to=“name”,values_to=“value”)%>%
ggplot()+
几何图形栏(aes(x=天,y=值,填充=名称),stat=“identity”,position=“dodge”)+
刻度填充手动(数值=c(Norm.pi=“红色”,Equi=“灰色”))+
主题(panel.grid.major=element_blank(),
panel.grid.minor=元素_blank(),
panel.background=元素_blank(),
轴线=元素线(颜色=“黑色”),
axis.text.x=元素\文本(),
axis.title.y=元素\文本(face=“bold”,size=22),
legend.direction=“垂直”,legend.box=“水平”)+
标度x连续(断裂=c(1,3,5,7,9),极限=c(0,10))+
比例y连续(秒轴=秒轴(~.+10))+
分面网格(.~Quail+组,scales=“free_y”)
#>警告:删除了包含缺失值的15行(几何图形栏)。


由(v0.3.0)于2020年5月19日创建。

试着做一个简单的例子。非常感谢@stefan!你能给我解释一下这一行吗?->tidyr::pivot_longer(c(Equi,Norm.pi),names_to=“name”,values_to=“value”)。@genferreri只需将pivot_longer将“Equi”和“Norm.pi”列中的值堆叠在一个新的“value”列中。要确定哪个值源于哪个轴,请在df中添加一个新列“name”。在您的例子中,这样做的好处是原始变量变成了一个变量的类别,可以很容易地绘制。有关旋转的更多信息,请参见例如。