使用ggplot2及ggplotly绘图时Y轴数值顺序错误如何解决?
问题原因
你构建数据框时,USAv2列的所有数值都被包裹在双引号中,因此被R识别为字符型变量而非数值型变量。ggplot2对字符型变量默认按照字典序排列坐标轴,而非按照数值大小排序,因此出现了Y轴顺序异常的问题。
解决方法
有两种常用的修复方案:
方案1:构建数据框时直接定义为数值型
去掉USAv2列所有数值外层的双引号即可:
USA_G7v2 <- data.frame( USAv2 = c(541945, 562886, 609085, 669576, 784362, 850051, 877983, 894973, 1014603, 1025091, 1017020, 1049943, 1138765, 1149043, 1241665, 1243148, 1350002, 1442058, 1309820, 1521441), Jahr = c("2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019") )
方案2:直接转换现有数据框的列类型
如果不想修改原始数据构建代码,可在绘图前执行类型转换语句:
USA_G7v2$USAv2 <- as.numeric(USA_G7v2$USAv2)
修复完成后,你原本的绘图和交互式转换代码可直接运行,Y轴会自动按照数值大小正常排序。另外注意你现有代码中ylab("Investitionen (Mio $")缺少右括号,可调整为ylab("Investitionen (Mio $)")避免潜在报错。
内容的提问来源于stack exchange,提问作者KingCooper
相关产品推荐
相关产品推荐

