Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使x轴文本具有垂直方向(不以90/270的角度旋转)_R_Ggplot2 - Fatal编程技术网

R 如何使x轴文本具有垂直方向(不以90/270的角度旋转)

R 如何使x轴文本具有垂直方向(不以90/270的角度旋转),r,ggplot2,R,Ggplot2,我希望我的X轴文本看起来像: J a n 不能随字母旋转 我想把它作为一个日期轴。例如,我知道我可以用“J\na\na\n”的值使其离散。也许我可以在axis.text.x值上映射这样的值向量?但似乎应该有一个更简单的方法 下面将说明这个问题。我把它旋转了90度,但如上所示,这不是我想要的 library(tidyverse) library(scales) y<- c(52014,51598,61920,58135,71242,76254,63882,64768,53526,55290

我希望我的X轴文本看起来像:

J
a
n

不能随字母旋转

我想把它作为一个日期轴。例如,我知道我可以用
“J\na\na\n”
的值使其离散。也许我可以在axis.text.x值上映射这样的值向量?但似乎应该有一个更简单的方法

下面将说明这个问题。我把它旋转了90度,但如上所示,这不是我想要的

library(tidyverse)
library(scales)

y<- c(52014,51598,61920,58135,71242,76254,63882,64768,53526,55290,45490,35602)
months<-seq(as.Date("2018-01-01"),as.Date("2018-12-01"),"month")
dat<-as.tibble(cbind(y,months)) %>% 
  mutate(month=as.Date(months,origin="1970-01-01"))

ggplot(dat) +
  geom_line(aes(x=month,y=y)) +
  scale_x_date(breaks=date_breaks("month"),labels=date_format("%b")) +
  theme(axis.text.x=element_text(angle=90))
库(tidyverse)
图书馆(比例尺)
y示例数据:

date <- seq(from = as.Date("2000-01-01"), to = as.Date("2000-12-01"), by = "month")
df <- data.frame(Month = date, Value = rnorm(12))
我假设您的日期变量是'date'类,所以我使用
scale\u x\u date
。如果是数字或字符,请使用
scale\u x\u continuous
scale\u x\u discrete

ggplot(df, aes(x = Month, y = Value)) +
  geom_line() +
  scale_x_date(breaks = date, labels = mon)

这里有几点建议:我会尝试,但我没有假设我可以在日期类型列上使用字符串函数。“一月”“二月”等来自于使用
scale\u x\u date(breaks=“month”)
。也许可以使用
标签
参数?此外,如果您提供一个最小的可复制示例,则更容易提供帮助。尝试了
gsub
函数方法,得到一个错误,该错误似乎是由于列类型引起的。为我原来的问题添加了一个示例。谢谢。我认为这是可能的。我不知道month.name(这是R中内置的某种常量吗?)。我将使用
month.abb
,我发现它也存在。很高兴帮助您
month.name
month.abb
是R中的本机字符向量。如果其他人读到这篇文章,
breaks=date\u breaks(“月”)
不起作用。我不得不将它切换到
breaks=MY.DATE
ggplot(df, aes(x = Month, y = Value)) +
  geom_line() +
  scale_x_date(breaks = date, labels = mon)