gpt4 book ai didi

r - ggplot,x轴上带有字符串

转载 作者:行者123 更新时间:2023-12-03 14:40:55 25 4
gpt4 key购买 nike

我正在尝试绘制其中有多条曲线的图。 x轴不是数字值,而是字符串。

这可以正常工作(例如在how to plot all the columns of a data frame in R中):

require(ggplot2)
df_ok <- rbind(data.frame(x=4:1,y=rnorm(4),d="d1"),data.frame(x=3:1,y=rnorm(3),d="d2"))
ggplot(df_ok, aes(x,y)) + geom_line(aes(colour=d))


但是我的数据看起来像这样:

require(ggplot2)
df_nok <- rbind(data.frame(x=c("four","three","two","one"),y=rnorm(4),d="d1"),data.frame(x=c("three","two","one"),y=rnorm(3),d="d2"))
ggplot(df_nok, aes(x,y)) + geom_line(aes(colour=d))


我收到错误geom_path:每个组仅包含一个观察值。您需要调整小组的审美吗?
即使未显示图形线,也会绘制轴,并且x轴包含正确的标签-顺序也错误。

任何想法如何绘制尽可能容易吗? (还请注意某些系列缺少的x值)。

最佳答案

您的问题是x变量是一个因素。因此,更改数据框并使x变为double:

df = rbind(data.frame(x=4:1,y=rnorm(4),d="d1"), 
data.frame(x=3:1,y=rnorm(3),d="d2"))


正常绘制

g = ggplot(df, aes(x,y)) + geom_line(aes(colour=d))


但明确更改x轴缩放比例:

g + scale_x_continuous(breaks=1:4, labels=c("one", "two", "three", "four")) 




要重命名变量,请尝试以下操作:

x1 = factor(df_nok$x, 
levels=c("one", "two", "three", "four"),
labels=1:4)
df$x1 = as.numeric(x1)

关于r - ggplot,x轴上带有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10495898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com