Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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 ggplot多重手动形状系列_R_Ggplot2 - Fatal编程技术网

R ggplot多重手动形状系列

R ggplot多重手动形状系列,r,ggplot2,R,Ggplot2,我有一张图表,显示了风险变量随时间的变化。目前,它有两个geom_point系列,一个显示每个月的风险水平,另一个显示初始值和最终值之间的风险水平变化(以下代码段中的“1月20日”数据点箭头): 我想改变每个风险级别数据点的形状,以显示额外的数据系列。然而,由于“风险变化”数据点目前是使用scale\u shape\u manual参数定义的,因此我似乎无法做到这一点 添加第二个scale\u shape\u manual参数时,我会得到以下错误代码,并且不会显示箭头形状比例”已存在。为“形状

我有一张图表,显示了风险变量随时间的变化。目前,它有两个
geom_point
系列,一个显示每个月的风险水平,另一个显示初始值和最终值之间的风险水平变化(以下代码段中的“1月20日”数据点箭头):

我想改变每个风险级别数据点的形状,以显示额外的数据系列。然而,由于“风险变化”数据点目前是使用
scale\u shape\u manual
参数定义的,因此我似乎无法做到这一点

添加第二个
scale\u shape\u manual
参数时,我会得到以下错误代码,并且不会显示箭头形状<“形状”的“代码>比例”已存在。为“形状”添加另一个比例,将替换现有比例。

生成带有错误的图表的代码如下所示。
sh_pal_all
向量包含定义两个系列中使用的所有形状的所有信息

有没有办法在同一个ggplot对象中手动定义两个单独的形状美学

sh_pal_all <- c("Up" = "\U2191", "No Change" = "\U2194", "Down" = "\U2193", "A1" = "circle", "B1" = "square", "C1" = "diamond", "D1" = "triangle", "E1" = "circle")

ggplot(data = meltdf2_all, aes(x = Month, y = variable, group = variable)) +
  geom_line(linetype = "dashed", colour = "grey") +
  geom_point(aes(colour = meltdf2_all$colour, size = 3, shape = meltdf2_all$accommodation)) +
  geom_point(data = melt_change_all, aes(shape = value, size = 3)) +
  scale_colour_manual(values = pal_all, limits = names(pal_all), guide_legend("Risk Level")) +
  scale_shape_manual(values = sh_pal_all[1:3], limits = names(sh_pal_all[1:3]), guide_legend("Latest Change")) +
  scale_shape_manual(values = sh_pal_all[4:8], limits = names(sh_pal_all[4:8]), guide_legend("Accomodation Type")) +
  scale_x_date(date_breaks = "1 month" , date_labels = "%b-%y") +
  theme(axis.title.y=element_blank(), axis.text.y=element_blank(), axis.ticks.y=element_blank(),
        axis.line.x = element_line(colour = "darkgrey"), axis.title.x=element_blank(),
        panel.background = element_rect(fill = "white"),
        panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
        legend.position = c(0.2,0.70),
        legend.key.size = unit(1.5,"line"),
        legend.box = "horizontal") + 
  guides(colour = guide_legend(override.aes = list(size = 3)), shape = guide_legend(override.aes = list(size = 5))) +
  scale_size(guide = "none")

sh\u pal\u你能发布你的数据,这样就有了一个完全可复制的例子吗?如果没有,如果将两个
scale\u shape\u manual
图层组合在一起会发生什么<代码>缩放形状手动(值=全部,限制=名称(全部))
您是否尝试更改缩放形状手动的顺序?如果你把它们放在它们应该定义的几何点之后,它可能会起作用。此外,您还可以尝试将第一个绘图保存为对象,然后使用相应的比例\形状\手册添加另一层几何点。