gpt4 book ai didi

使用 scale_x_discrete() 删除图的左侧(从 0 到 13)

转载 作者:行者123 更新时间:2023-12-01 13:49:49 25 4
gpt4 key购买 nike

数据可以在这里下载:https://docs.google.com/spreadsheets/d/1McbcquHdsdlEM_yPfBQHeX_CpUcARAm1I3VtASNsY3k/edit?usp=sharing

这是我的代码

# load data
raw_data <- read.csv("Sleep vs reaction time (Responses) - Form Responses 1.csv")

library(ggplot2)

#histogram
qplot(x = Age, data = raw_data, xlim = c(13,43), geom = "histogram") + scale_x_continuous()


qplot(x = Age, data = raw_data, xlim = c(13,43), geom = "histogram") + scale_x_discrete()

我想按年龄绘制直方图。它是离散值(年龄是整数)所以我使用 scale_x_discrete 来分隔条形图。然而,它看起来像 discrete
左边有空格。

如果我使用 scale_x_continuous(),左边的空间将消失,但条形之间的分隔也消失了。 continue

我想摆脱左侧的空间,从 0 到 13,但保留栏之间的分隔。请告诉我怎么做。

谢谢。

我的解决方案:
感谢@Gregor,这是我的解决方案:

raw_data$Age = factor(raw_data$Age) #convert Age column to factor
qplot(x = Age, data = raw_data, geom = "histogram") + scale_x_discrete()

结果:
age_hist

最佳答案

您应该让数据的类别决定尺度是离散的还是连续的。 ggplot 没有对整数尺度的内置支持,因为它不同于数字尺度,所以如果你想要一个离散尺度,你应该将你的年龄数据转换为 factor (如果还没有的话):

raw_data$Age_factor = factor(raw_data$Age)

如果您指定xlim,那么默认值将为您提供您想要的。

qplot(x = Age_factor, data = raw_data, geom = "histogram")

这有点令人困惑,但实际上是您的 xlim = c(13, 43) 将您的图形向右移动。在离散尺度上,13 和 43 指的是第 13 和 43 个离散级别,因此通过设置这些 xlim,您可以强制数据向右移动。

关于使用 scale_x_discrete() 删除图的左侧(从 0 到 13),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32799688/

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