如何使 x 轴显示“xaxisTitles”向量中的文本?
这是我可以运行的代码:
require(ggplot2)
require(reshape)
xaxisTitles<- cbind("a","b","c","d","e","f","g","h","j","k")
df <- data.frame(time = 1:10,
a = cumsum(rnorm(10)),
b = cumsum(rnorm(10)),
c = cumsum(rnorm(10)))
df <- melt(df , id = 'time', variable_name = 'series')
# plot on same grid, each series colored differently --
# good if the series have same scale
ggplot(df, aes(time,value)) + geom_line(aes(colour = series))+ theme(axis.text.x = xaxisTitles)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Error in (function (el, elname) :
Element axis.text.x must be a element_text object.
Run Code Online (Sandbox Code Playgroud)
您收到错误的原因是theme(...)用于设置轴文本的外观(例如,颜色、字体系列、字体、大小、方向等),而不是文本的值。为此,正如 @SteveReno 指出的,您必须使用scale_x_discrete(...).
require(ggplot2)
require(reshape)
set.seed(321)
# xaxisTitles<- cbind("a","b","c","d","e","f","g","h","j","k")
xaxisTItles<- letters[1:10] # easier way to do this...
df <- data.frame(time = 1:10,
a = cumsum(rnorm(10)),
b = cumsum(rnorm(10)),
c = cumsum(rnorm(10)))
df <- melt(df , id = 'time', variable_name = 'series')
# plot on same grid, each series colored differently --
# good if the series have same scale
ggplot(df, aes(time,value)) +
geom_line(aes(colour = series))+
scale_x_discrete(labels=xaxisTitles)+
theme(axis.text.x=element_text(face="bold",colour="red",size=14))
Run Code Online (Sandbox Code Playgroud)
