ggplot使用Rmarkdown时显示为空的图形

ggplot使用Rmarkdown时显示为空的图形,r,ggplot2,R,Ggplot2,我在使用带有Rmarkdown的ggplot时遇到问题。 我有一个应该返回ggplot图的代码。当我在R会话中执行该代码时,它会工作,但当使用R标记时,该代码返回空的绘图。这就是我在R会话中使用的代码 m<-ggplot(data=t,aes_string(x=v,y =t$cnt_pct)) m+geom_bar(stat = "identity",fill="#FF0000",color='black')+geom_text(aes(label = cnt_pct),vjust

我在使用带有Rmarkdown的ggplot时遇到问题。 我有一个应该返回ggplot图的代码。当我在R会话中执行该代码时,它会工作,但当使用R标记时,该代码返回空的绘图。这就是我在R会话中使用的代码

    m<-ggplot(data=t,aes_string(x=v,y =t$cnt_pct))
m+geom_bar(stat = "identity",fill="#FF0000",color='black')+geom_text(aes(label = cnt_pct),vjust=-0.2)+ggtitle(paste(v,paste("graph")))+theme(plot.title = element_text(hjust = 0.5))+ylab("percent")+geom_line(aes_string(x=v,y =t$keshel_pct),group=1,size=2) 

m这里有几个问题:

1) 您的绘图语法有问题
aes_string
接受引用列名的字符串,但您正在为x传递变量
v
,为y传递直接列数据
t$cnt_pnt
。检查一些
ggplot
示例以获得正确的语法

2)
plot(m)
语句不应该工作,原因有二:首先,您打印
ggplot对象,而不是
plot
对象。其次,您没有将
m+geom_条(…)
语句分配给任何对象,因此即使
plot
语句确实有效,您也可以在没有
geom_条(…)
的情况下获得绘图。试试看,例如
y=m+geom_-bar(…);改为打印(y)

m<-ggplot(data=t,aes_string(x=v,y =t$cnt_pct))
m+geom_bar(stat = "identity",fill="#FF0000",color='black')+geom_text(aes(label = cnt_pct),vjust=-0.2)+ggtitle(paste(v,paste("graph")))+theme(plot.title = element_text(hjust = 0.5))+ylab("percent")+geom_line(aes_string(x=v,y =t$keshel_pct),group=1,size=2) 
plot(m)