R ggplot在平面图中有一些错误。尝试将y值与刻面ggplot协调

R ggplot在平面图中有一些错误。尝试将y值与刻面ggplot协调,r,ggplot2,r-markdown,facet,facet-wrap,R,Ggplot2,R Markdown,Facet,Facet Wrap,所以我试图编辑多面ggplot上的y值,因为当我编织时,我在plot上得到了一些不准确的结果。我对R和R降价非常陌生,所以我不太明白为什么,例如,美国的GDP购买力平价在美元金额最高时比其他值的门槛更低。在其他值中也存在一些差异,当值之间只有大约100美元到500美元的差异时,条形图似乎要高得多。有人知道可能是什么问题吗?这是我的密码: library(ggplot2) library(tidyr) OECD_IMF <- read.csv("OECD_IMF.csv") attach(

所以我试图编辑多面ggplot上的y值,因为当我编织时,我在plot上得到了一些不准确的结果。我对R和R降价非常陌生,所以我不太明白为什么,例如,美国的GDP购买力平价在美元金额最高时比其他值的门槛更低。在其他值中也存在一些差异,当值之间只有大约100美元到500美元的差异时,条形图似乎要高得多。有人知道可能是什么问题吗?这是我的密码:

library(ggplot2)
library(tidyr)

OECD_IMF <- read.csv("OECD_IMF.csv")
attach(OECD_IMF)
detach(OECD_IMF)

OECD_IMFlong <- gather(OECD_IMF, key="measure", value="value", c("GDP_Nom_T" , "GDP_PPP" ,"Aid_Perc"))

variable_names <- list("GDP_Nom_T" = "GDP Per Capita 2018 (USD Thousands)" ,
  "GDP_PPP" = "GDP Purchasing Power Parity 2018 (USD Trillions)",
  "Aid_Perc" = "Average % of Gross National Income Given in Foreign Aid (2000-2016)")

variable_labeller <- function(variable,value){
  return(variable_names[value])}

ggplot(OECD_IMFlong, aes(x=Country, y=value, fill=Country))+
geom_bar(stat='identity')+ geom_text(aes(label=value), vjust=1.6, color="white", size=2.1)+ 
facet_wrap(~measure, scales="free_y", ncol=1, labeller= variable_labeller)+ 
labs(caption="Source: Official Development Assistance Database & IMF World Economic Outlook")+ ylab("Value")+ 
theme_grey() + theme(axis.text.x = element_text(angle = 45, hjust = 1),axis.title.y=element_blank(),axis.title.x=element_blank())
库(ggplot2)
图书馆(tidyr)

正如@StupidWolf已经指出的,问题在于你的
列是一个字符而不是一个数字向量。因此,在打印之前,必须将
转换为数值。为了使值和标签都正确,我添加了一个新的var
value1
,它是给定给
geom_bar
的数值,而
value
保留为字符,并给定给geom_text,以使用漂亮的$-标签来标记条。试试这个

库(ggplot2)
图书馆(stringr)
图书馆(dplyr)
OECD_IMFlong`value`参数现在已被弃用。请参阅labellers文档。


由PPP的(v0.3.0)

于2020-03-16创建,如果值在“T”中,R不知道它是什么。。什么是等级(OECD_IMFlong$价值)?我看不到您实际生成此图的代码,因为我看到的是geom_文本(aes(label=value),vjust=1.6,color=“white”,size=2.1)和ggplot(OECD_IMFlong,aes(x=Country,y=value,fill=Country))+geom_条(stat='identity'),意思是“22.2T”和67063。。都在同一列中,因此实际上是在绘制因子。。而不是连续值你介意做dput(OECD_IMFlong)并将输出粘贴到你的帖子中吗?只要为值和标签结构(列表(国家=结构)(c(7L,2L,5L,1L,6L,3L,4L,7L,2L,5L,1L,6L,3L,4L,4L,7L,2L,5L,1L,6L,3L,4L),标签=c(“加拿大”,“法国”,“德国”,“意大利”,“日本”,“美国”),class=”factor“),GDP\u Nom=c,您的问题就可以得到解决4.845e-05,4.314575E-05,3.70636E-05,4.3118e-05,4.313118E-05,4.9617e-05,4.9617e-5,3.455 5 5,3.45755,3.9617e-05,4.455-5,4.96176.961717E-5,4.96171717E-05,4.9617175 5 5 5 5-5-5,3.96175,4.9617175-5,4.96171717175 5 5-5-5,4.96175-5,4.9617-5-5,4.96175-5,4.7-5-5,4-5-5-5,4-5,4.7-5-5,4.7-5-5,4.7-5-5,4.706-5,4.70636-5-5,“国民生产总值”、“国民生产总值”、“国民生产总值”,“GDP_Nom_T”、“GDP_Nom_T”、“GDP_PPP”、“GDP_PPP”、“GDP_PPP”、“GDP_PPP”、“GDP_PPP”、“援助Perc”、“援助Perc”、“援助Perc”、“援助Perc”、“援助Perc”、“援助Perc”、“援助Perc”、“援助Perc”、“援助Perc”),价值=c($67063.00)、$44062.00、$43450.00、$48553.00、$43118.00、$49617.00、$2.75、$4.00、$97$1.71“,$2.86“,$3.95“,$2.08”,“0.1717”,“0.0467”,“0.2108”,“0.2843”,“0.4963”,“0.374”,“0.1869”)),row.names=c(NA,-21L),class=“data.frame”)这很好,非常感谢你的帮助!这很好,非常感谢你的帮助!我很高兴。你能将答案标记为已接受。除了增加我的声誉之外,这个问题将从等待答案的问题列表中删除。