Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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
如何修复:';strwidth和x27中的错误;绘制图例时_R_Ggplot2_Plot_Legend - Fatal编程技术网

如何修复:';strwidth和x27中的错误;绘制图例时

如何修复:';strwidth和x27中的错误;绘制图例时,r,ggplot2,plot,legend,R,Ggplot2,Plot,Legend,我正在尝试绘制一个带有点的折线图,并根据点的颜色绘制一个图例。图表打印正确,但图例不显示 图表后面的数据是数据框的格式,有4列-月、变量(例如特定用户)、值(表示分数的数值)和颜色(基于数字分数的红色/琥珀色/绿色值) 图表代码如下: ggplot(data = meltdf2, aes(x = Month, y = variable, group = variable)) + geom_line(linetype = "dashed", colour = "grey") + geom_

我正在尝试绘制一个带有点的折线图,并根据点的颜色绘制一个图例。图表打印正确,但图例不显示

图表后面的数据是数据框的格式,有4列-月、变量(例如特定用户)、值(表示分数的数值)和颜色(基于数字分数的红色/琥珀色/绿色值)

图表代码如下:

ggplot(data = meltdf2, aes(x = Month, y = variable, group = variable)) +
  geom_line(linetype = "dashed", colour = "grey") +
  geom_point(colour = meltdf2$colour, size = 3) +
  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"),
        panel.background = element_rect(fill = "white"),
        panel.grid.major = element_blank(), panel.grid.minor = element_blank())

legend("topleft", legend = c("High", "Mid", "Low"), pch = 1,  col= c("red2","gold","limegreen"))
无论我是单独运行绘图和图例代码还是同时运行绘图和图例代码,以及是否将它们包含在相同的参数中,我都会得到错误: strwidth(legend,units=“user”,cex=cex,font=text.font)中出现错误:尚未调用plot.new


如果您对如何显示图例有任何建议,我们将不胜感激。

请根据上面@r2evans的评论回答:

问题确实是试图将基本图形命令与
ggplot
图形一起使用

为了解决这个问题并显示所需的图例,我创建了一个调色板向量(
pal
),其名称基于源数据帧中
melt2df$color
变量的值。该矢量包含在绘图代码中,作为
scale\u color\u手册
功能的一部分。在
geom_point
函数中使用了
aes
函数来包装该系列的各种美学要求

完成的代码如下所示:

pal <- c("High"="red2","Mid"="gold","Low" = "limegreen","NA"= "NA")

#create plot with line and points.
#colour of points based on colour column of meltdf2
ggplot(data = meltdf2, aes(x = Month, y = variable, group = variable)) +
  geom_line(linetype = "dashed", colour = "grey") +
  geom_point(aes(colour = meltdf2$colour, size = 3)) +
  scale_colour_manual(values = pal, limits = names(pal)) +
  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"),
        panel.background = element_rect(fill = "white"),
        panel.grid.major = element_blank(), panel.grid.minor = element_blank())

pal
legend
strwidth
基本图形,但您已经从
ggplot
图形开始。这两者不相容。我建议您查看,了解如何自定义此绘图的图例。如果您需要更多帮助,您需要改进问题,包括代表性的示例数据(可能是
dput(head(meltdf2))
)以及您希望图例的外观。@r2evans谢谢-我已经根据您下面的评论发布了一个工作代码。