在ggplot中手动“闪避”点时出现错误“离散值提供给连续刻度”

戴维斯

我正在尝试手动将dodge一个点与误差线对齐。

head我的数据包括在这里和我的完整数据集包括在后通过底部dput

> head(Data, n=15)
   StudyArea      ID Obs variable value       SE   id
1       Cali CAL_F01  22 CaliPred    NA       NA  0.0
2       Cali CAL_F17  50 CaliPred    NA       NA  0.0
3       Cali CAL_F19   8 CaliPred    NA       NA  0.0
4       Cali CAL_F23  15 CaliPred    NA       NA  0.0
5       Cali CAL_F43  54 CaliPred    NA       NA  0.0
6       Cali CAL_M33  30 CaliPred    NA       NA  0.0
7       Cali CAL_M36  11 CaliPred    NA       NA  0.0
8       Colo COL_P01  90 CaliPred    77 6.314889 -7.1
9       Colo COL_P03  53 CaliPred    55 5.497654 -7.1
10      Colo COL_P05   9 CaliPred     5 1.642908 -7.1
11      Colo COL_P06  42 CaliPred    38 4.518088 -7.1
12      Colo COL_P07  72 CaliPred    84 6.877948 -7.1
13      Colo COL_P08  40 CaliPred    47 5.483234 -7.1
14      Colo COL_P09  60 CaliPred    65 6.076180 -7.1
15      Colo COL_P10  58 CaliPred    61 5.504660 -7.1

如下图所示,这些点未正确对齐。误差线是手动dodged插入其idData(在下面的代码的第三行)中。

p <-ggplot(Data , aes(x=ID))+
  geom_point(aes(y=value, color=variable),size=3, )+
  geom_errorbar(aes(ymin=value-SE, ymax=value+SE, x=as.numeric(factor(ID))+id, color=variable),lty = 2, cex=1, width = 0.5)+
  geom_point(aes(y=Obs),shape="*",size=12)+
  facet_wrap(~StudyArea,scales="free",ncol=1) +
  theme(axis.text.x=element_text(angle=30, hjust=1))
pp <- p + scale_color_manual(name="Area", 
                        values=c("red", "blue","darkgreen"), 
                        breaks=c("Pred", "Pred", "Pred"))+
        theme(legend.position="bottom")

当我添加x=as.numeric(factor(ID))+id到该aes参数时(如下面的代码所示),我得到了错误Error: Discrete value supplied to continuous scale

p <-ggplot(Data , aes(x=ID))+
  geom_point(aes(y=value, x=as.numeric(factor(ID))+id, color=variable),size=3, shape=1)+
  geom_errorbar(aes(ymin=value-SE, ymax=value+SE, x=as.numeric(factor(ID))+id, color=variable),lty = 2, cex=1, width = 0.5)+
  geom_point(aes(y=Obs),shape="*",size=12)+
  facet_wrap(~StudyArea,scales="free",ncol=1) +
  theme(axis.text.x=element_text(angle=30, hjust=1))
pp <- p + scale_color_manual(name="Area", 
                        values=c("red", "blue","darkgreen"), 
                        breaks=c("Pred", "Pred", "Pred"))+
        theme(legend.position="bottom")
pp

问题:如何正确dodge将点与手动指定的误差线对齐?

如图

提前致谢!

所有资料

Data <- structure(list(StudyArea = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 
3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("Cali", 
"Colo", "Pata"), class = "factor"), ID = structure(c(1L, 2L, 
3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 
17L, 18L, 19L, 20L, 21L, 22L, 23L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 
8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 
21L, 22L, 23L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 
12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L), .Label = c("CAL_F01", 
"CAL_F17", "CAL_F19", "CAL_F23", "CAL_F43", "CAL_M33", "CAL_M36", 
"COL_P01", "COL_P03", "COL_P05", "COL_P06", "COL_P07", "COL_P08", 
"COL_P09", "COL_P10", "COL_P12", "COL_P13", "PAT_F03", "PAT_F04", 
"PAT_F05", "PAT_M02", "PAT_M03", "PAT_M04"), class = "factor"), 
    Obs = c(22L, 50L, 8L, 15L, 54L, 30L, 11L, 90L, 53L, 9L, 42L, 
    72L, 40L, 60L, 58L, 20L, 37L, 50L, 67L, 20L, 19L, 58L, 5L, 
    22L, 50L, 8L, 15L, 54L, 30L, 11L, 90L, 53L, 9L, 42L, 72L, 
    40L, 60L, 58L, 20L, 37L, 50L, 67L, 20L, 19L, 58L, 5L, 22L, 
    50L, 8L, 15L, 54L, 30L, 11L, 90L, 53L, 9L, 42L, 72L, 40L, 
    60L, 58L, 20L, 37L, 50L, 67L, 20L, 19L, 58L, 5L), variable = structure(c(1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("CaliPred", "ColoPred", 
    "PataPred"), class = "factor"), value = c(NA, NA, NA, NA, 
    NA, NA, NA, 77, 55, 5, 38, 84, 47, 65, 61, 25, 43, 34, 66, 
    18, 15, 34, 5, 18, 49, 6, 13, 31, 27, 12, NA, NA, NA, NA, 
    NA, NA, NA, NA, NA, NA, 32, 60, 18, 14, 32, 5, 30, 53, 7, 
    15, 49, 32, 14, 86, 62, 5, 48, 93, 52, 73, 68, 28, 47, NA, 
    NA, NA, NA, NA, NA), SE = c(NA, NA, NA, NA, NA, NA, NA, 6.31488929298672, 
    5.497653791366, 1.64290834339061, 4.51808782802661, 6.87794805206761, 
    5.48323374891446, 6.07617986453451, 5.50465952513403, 3.46640687133807, 
    4.67925642640691, 3.89436451780002, 5.95337845105602, 3.16947277410086, 
    2.65632106571484, 4.54262669561671, 1.48630436319955, 3.38512609777978, 
    4.89449176574693, 1.22686235133486, 2.55142136173085, 4.65844412010727, 
    3.84103820176873, 2.38653357702158, NA, NA, NA, NA, NA, NA, 
    NA, NA, NA, NA, 3.92516789504607, 5.92416243616404, 3.14626294785635, 
    2.67848085040132, 4.48377790891048, 1.49789328005297, 3.43538336956585, 
    4.86558548401014, 0.927955791077904, 2.51531952706457, 5.07056696779931, 
    3.85815493933999, 2.34767760968492, 6.39770960804122, 5.58054623577558, 
    1.64529737748105, 4.38254693434801, 6.95044087111244, 5.54875633450289, 
    6.16583286016463, 5.32461337007243, 3.47652151729081, 4.68257865863345, 
    NA, NA, NA, NA, NA, NA), id = c(0, 0, 0, 0, 0, 0, 0, -7.1, 
    -7.1, -7.1, -7.1, -7.1, -7.1, -7.1, -7.1, -7.1, -7.1, -17.1, 
    -17.1, -17.1, -17.1, -17.1, -17.1, -0.1, -0.1, -0.1, -0.1, 
    -0.1, -0.1, -0.1, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7, 
    -16.9, -16.9, -16.9, -16.9, -16.9, -16.9, 0.1, 0.1, 0.1, 
    0.1, 0.1, 0.1, 0.1, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, 
    -6.9, -6.9, -6.9, -17.7, -17.7, -17.7, -17.7, -17.7, -17.7
    )), .Names = c("StudyArea", "ID", "Obs", "variable", "value", 
"SE", "id"), row.names = c(NA, -69L), class = "data.frame")
耶洛华德

这似乎是您要寻找的(???)

library(ggplot2)
gg <- na.omit(Data)
p <-ggplot(gg, aes(x=ID))+
  geom_point(aes(y=value, color=variable),size=3,position=position_dodge(1))+
  geom_errorbar(aes(ymin=value-SE, ymax=value+SE, color=variable), position=position_dodge(1),cex=1, width = .5)+
  geom_point(aes(y=Obs),shape="*",size=12)+
  facet_wrap(~StudyArea,scales="free",ncol=1) +
  theme(axis.text.x=element_text(angle=30, hjust=1))+
  scale_color_manual(name="Area", values=c("red", "blue","darkgreen"))+
  theme(legend.position ="bottom")
p

之所以会出现此错误,是因为您尝试将离散值-aes(x=ID,...)与连续值-相结合aes(x=as.numeric(ID)+id,...)这是没有意义的。如上所示,如果您摆脱了NA,就可以得到所需的(??)结果,而无需使用闪避Data

IMO这是一种更好的表示数据的方式:

p <-ggplot(gg, aes(x=ID))+
  geom_point(aes(y=value, color=variable),size=3,position=position_dodge(1))+
  geom_errorbar(aes(ymin=value-SE, ymax=value+SE, color=variable), position=position_dodge(1),cex=1, width = .5)+
  geom_point(aes(y=Obs),shape="*",size=8)+
  facet_grid(~StudyArea,scales="free") +
  theme(axis.text.x=element_text(angle=-90, vjust=.3))+
  scale_color_manual(name="",values=c("red", "blue","darkgreen"))+
  theme(legend.position ="bottom")
p

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:连续值提供给离散刻度

来自分类Dev

R ggmap ggplot2错误“错误:将离散值提供给连续刻度”

来自分类Dev

ggplot2错误-'离散值提供给连续刻度尺'

来自分类Dev

R ggplot geom_bar错误:离散值提供给连续刻度

来自分类Dev

ggplot2 + 循环导致“错误:离散值提供给连续刻度”

来自分类Dev

用ggplot2绘制:“错误:将离散值提供给连续刻度”在分类y轴上

来自分类Dev

带有日期的geom_vline()给出错误:离散值提供给连续刻度

来自分类Dev

“错误:离散值提供给连续刻度”,但我正在使用数字变量

来自分类Dev

小提琴图错误-提供给连续刻度的离散值

来自分类Dev

无法使用自动绘图显示“ts” - 错误:提供给连续刻度的离散值

来自分类Dev

R ggmap ggplot2 错误“错误:离散值提供给连续比例尺”

来自分类Dev

如何解决数据密度图的错误消息“离散值提供给连续刻度”;差功能?

来自分类Dev

手动将DbContext提供给DbMigrator

来自分类Dev

我想使用 ggplot 在 barstack 图中添加 clour manully 并且我收到错误错误:提供给离散比例的连续值

来自分类Dev

ggplot2错误:手动刻度中的值不足

来自分类Dev

ggplot2错误:手动刻度中的值不足

来自分类Dev

手动添加Segment iOS框架时出现错误

来自分类Dev

手动添加Segment iOS框架时出现错误

来自分类Dev

有没有办法在ggplot2中手动设置水平框的高度?(垂直闪避)

来自分类Dev

在 Windows 窗体中手动设置光标时出现错误声音

来自分类Dev

在ggplot2中手动缩放离散x轴变量

来自分类Dev

在ggplot2中手动缩放离散x轴变量

来自分类Dev

ggplot手动更改24小时时间变量的轴刻度顺序

来自分类Dev

在ggplot中手动分配颜色

来自分类Dev

ggplot中的线型手动更改

来自分类Dev

在ggplot2中的coord_flip()之后手动设置X轴上的限制和刻度

来自分类Dev

尝试手动创建用户时出现“ undefined method`generate_token'”错误

来自分类Dev

手动部署时出现错误“ app.json必须包含JSON对象”

来自分类Dev

iOS7。手动推UITableViewController时出现框架错误吗?

Related 相关文章

  1. 1

    错误:连续值提供给离散刻度

  2. 2

    R ggmap ggplot2错误“错误:将离散值提供给连续刻度”

  3. 3

    ggplot2错误-'离散值提供给连续刻度尺'

  4. 4

    R ggplot geom_bar错误:离散值提供给连续刻度

  5. 5

    ggplot2 + 循环导致“错误:离散值提供给连续刻度”

  6. 6

    用ggplot2绘制:“错误:将离散值提供给连续刻度”在分类y轴上

  7. 7

    带有日期的geom_vline()给出错误:离散值提供给连续刻度

  8. 8

    “错误:离散值提供给连续刻度”,但我正在使用数字变量

  9. 9

    小提琴图错误-提供给连续刻度的离散值

  10. 10

    无法使用自动绘图显示“ts” - 错误:提供给连续刻度的离散值

  11. 11

    R ggmap ggplot2 错误“错误:离散值提供给连续比例尺”

  12. 12

    如何解决数据密度图的错误消息“离散值提供给连续刻度”;差功能?

  13. 13

    手动将DbContext提供给DbMigrator

  14. 14

    我想使用 ggplot 在 barstack 图中添加 clour manully 并且我收到错误错误:提供给离散比例的连续值

  15. 15

    ggplot2错误:手动刻度中的值不足

  16. 16

    ggplot2错误:手动刻度中的值不足

  17. 17

    手动添加Segment iOS框架时出现错误

  18. 18

    手动添加Segment iOS框架时出现错误

  19. 19

    有没有办法在ggplot2中手动设置水平框的高度?(垂直闪避)

  20. 20

    在 Windows 窗体中手动设置光标时出现错误声音

  21. 21

    在ggplot2中手动缩放离散x轴变量

  22. 22

    在ggplot2中手动缩放离散x轴变量

  23. 23

    ggplot手动更改24小时时间变量的轴刻度顺序

  24. 24

    在ggplot中手动分配颜色

  25. 25

    ggplot中的线型手动更改

  26. 26

    在ggplot2中的coord_flip()之后手动设置X轴上的限制和刻度

  27. 27

    尝试手动创建用户时出现“ undefined method`generate_token'”错误

  28. 28

    手动部署时出现错误“ app.json必须包含JSON对象”

  29. 29

    iOS7。手动推UITableViewController时出现框架错误吗?

热门标签

归档