我正在开发一个名为ipeaplot主题和调色板标准化的包。我们所做的尝试之一是创建一个scale_color()能够区分用户传递的是连续列还是离散列的函数(例如,如果列类是数字或整数,则尺度选择应该是连续的,否则应该是离散的)
下面是代码示例
# Install package
remotes::install_github("ipeadata-lab/ipeaplot")
library(ggplot2)
library(ipeaplot)
Run Code Online (Sandbox Code Playgroud)
这段代码可以工作,但是请注意我必须指定我想要的是连续的比例
ggplot(data = mtcars, aes(x = mpg, y = hp, color = gear)) +
geom_point() +
scale_color_ipea(discrete = F)
Run Code Online (Sandbox Code Playgroud)
此代码返回以下错误:“错误:向离散刻度提供连续值”
ggplot(data = mtcars, aes(x = mpg, y = hp, color = as.character(gear))) +
geom_point() +
scale_color_ipea(discrete = T)
Run Code Online (Sandbox Code Playgroud)
所以我需要手动设置,scale_color_ipea(discrete = T)但我希望该功能能够自动检测列的类别并相应地使用足够的色标。
ggplot(data = mtcars, aes(x = mpg, y = hp, color = as.character(gear))) +
geom_point() +
scale_color_ipea(discrete = T)
Run Code Online (Sandbox Code Playgroud)
有人会建议如何做到这一点吗?