R 如何向堆叠条形图添加点

R 如何向堆叠条形图添加点,r,ggplot2,geom-bar,ggplotly,R,Ggplot2,Geom Bar,Ggplotly,我想在我的网站上添加点(变量nb物种) 现有图表。我试图使用函数geom_point添加点,但不幸的是,我出现了以下错误: “提供给连续刻度的离散值”。 您可以在下面找到我的数据和代码 structure(list(SOUNAME = c("BALLYSHANNON (CATHLEENS FALL)", "BALLYSHANNON (CATHLEENS FALL)", "BALLYSHANNON (CATHLEENS FALL)", "BALLYSHANNON (CATHLEENS FAL

我想在我的网站上添加点(变量nb物种) 现有图表。我试图使用函数
geom_point
添加点,但不幸的是,我出现了以下错误:

“提供给连续刻度的离散值”。

您可以在下面找到我的数据和代码

  structure(list(SOUNAME = c("BALLYSHANNON (CATHLEENS FALL)", "BALLYSHANNON (CATHLEENS FALL)", 
"BALLYSHANNON (CATHLEENS FALL)", "BALLYSHANNON (CATHLEENS FALL)", 
"BALLYSHANNON (CATHLEENS FALL)", "BALLYSHANNON (CATHLEENS FALL)", 
"BALLYSHANNON (CATHLEENS FALL)", "BALLYSHANNON (CATHLEENS FALL)", 
"BALLYSHANNON (CATHLEENS FALL)", "BALLYSHANNON (CATHLEENS FALL)", 
"BALLYSHANNON (CATHLEENS FALL)", "BALLYSHANNON (CATHLEENS FALL)"
), year_month = c("2014-05", "2014-05", "2014-05", "2014-05", 
"2014-06", "2014-06", "2014-06", "2014-06", "2014-07", "2014-07", 
"2014-07", "2014-07"), pre_type = c("NONE", "HEAVY", "LIGHT", 
"MEDIUM", "NONE", "HEAVY", "LIGHT", "MEDIUM", "NONE", "HEAVY", 
"LIGHT", "MEDIUM"), pre_value = c(3, 6, 20, 2, 16, 2, 9, 2, 3, 
3, 22, 3), tem_type = c("V_COLD", "COLD", "HOT", "MEDIUM", "V_COLD", 
"COLD", "HOT", "MEDIUM", "V_COLD", "COLD", "HOT", "MEDIUM"), 
    tem_value = c(0, 31, 0, 0, 0, 24, 6, 0, 0, 23, 8, 0), nb_species = c("NA", 
    "3", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", "NA", 
    "NA"), x = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 
    3L)), .Names = c("SOUNAME", "year_month", "pre_type", "pre_value", 
"tem_type", "tem_value", "nb_species", "x"), row.names = c(NA, 
-12L), class = c("tbl_df", "tbl", "data.frame"))

ggplot(data = complet_b, aes(x = x, y = pre_value, fill = pre_type), stat = "identity") +
          scale_x_continuous(breaks=1:3, labels=unique(complet_b$year_month)) +
          geom_bar(stat = "identity", width=0.3) +
          xlab("date") + ylab ("Number of days of precipitation") +
          ggtitle("Precipitation per month") + labs(fill = "Frequency") +
          geom_bar(data=complet_b,aes(x=x+0.4, y=tem_value, fill=tem_type), width=0.3, stat = "identity") +
          xlab("date") + ylab("Number of days of temperature") +
          ggtitle("Temperature per month") + labs(fill = "Frequency") 

非常感谢你抽出时间来帮助我

您的列
nb\u species
为字符格式,请将其转换为数字,这样您就可以开始了

一个快速的
str(complett_b)
会告诉您您的列格式

complet_b$nb_species <- as.numeric(complet_b$nb_species)

非常感谢您的回答。是否可以在两列之间居中/移动点?类似地,对于横坐标轴?@ElodieP.,请接受(绿色复选标记)/upvote解决方案,如果它解决了问题,移动点时,您可以移动点,但此处该点在
2014-05
上的值为3,因此除非您更改值,否则无法移动它。您可以查看您的数据。对不起,我是新来的,我没见过。。。有可能不向上或向下移动胸部,而是向右移动吗?@ElodieP.,这取决于你的x轴,如果这个值出现在日期为2014-06的那一行,它会在中间,就像我说的,它完全取决于你的输入数据,试着在一张纸上绘图,你会更了解它。然而,可能还有另一种方式,但它非常不可能是的,但我不明白为什么这一点被放在巴尔普罗Prype类型,而不是在中间…(在条形图tem和条形图预处理之间)
library(ggplot2)
ggplot(data = complet_b, aes(x = x, y = pre_value, fill = pre_type), stat = "identity") +
  scale_x_continuous(breaks=1:3, labels=unique(complet_b$year_month)) +
  geom_bar(stat = "identity", width=0.3) +
  xlab("date") + ylab ("Number of days of precipitation") +
  ggtitle("Precipitation per month") + labs(fill = "Frequency") +
  geom_bar(data=complet_b,aes(x=x+0.4, y=tem_value, fill=tem_type), width=0.3, stat = "identity") +
  xlab("date") + ylab("Number of days of temperature") +
  geom_point(aes(x = x, y= nb_species)) +
  ggtitle("Temperature per month") + labs(fill = "Frequency")