用ggplot在x轴上显示年份的麻烦

问题描述 投票:0回答:1

我正在使用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)
r ggplot2 axis-labels
1个回答
0
投票

[就像提到的其他用户一样,在不查看数据集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.POSIXoperate similarly to the as.Date function。这些格式中的任何一种都可以与as.Date一起正常使用。

最后,如果要指定与比例尺有关的任何内容来表示图形,则可以使用ggplot更改间隔,界限,格式标签等。scale_x_date。>

© www.soinside.com 2019 - 2024. All rights reserved.