我正在使用ggplot逐年显示出版物。但是,我的x轴显示为整数(例如2015.0),而不是每年在每个条形下显示。
p <-ggplot(pubs, aes(x = Year, y=Pubs, fill=Author.order)) +
geom_bar(stat="identity", position=position_stack(reverse = TRUE),size=.3)
[就像提到的其他用户一样,在不查看数据集pubs
的情况下很难帮助您。话虽这么说,如果您看到2015年的轴标记为2015.0,则绝对意味着pubs$Year
未格式化为日期。因此,ggplot
将其视为普通数字。
首先尝试格式化为日期:
pubs$Year <- as.Date(pubs$Year, format="your.format.here")
[如果我看到了pubs$Year
的构造方式,那么我可以建议您使用format=
。默认情况下,as.Date
函数将尝试使用不同的格式according to the documentation,如果根据您的数据没有找到,则会打出错误。 as.Date
使用strptime()
转换为Date
类,因此您可以通过look at that documentation帮助了解如何编写format=
片段。请注意,strptime
将字符转换为日期类型,因此,如果您的数据为数字,则实际上可能要转换为字符then转换为日期。听起来很奇怪,但我自己做了,因为它可行。 :)
然而,R中除Date
以外还有更多类可以表示日期或日期/时间值。您也可以使用POSIXct
的任何POSIXlt
功能使用as.POSIX
或operate similarly to the as.Date
function。这些格式中的任何一种都可以与as.Date
一起正常使用。
最后,如果要指定与比例尺有关的任何内容来表示图形,则可以使用ggplot
更改间隔,界限,格式标签等。scale_x_date
。>