gpt4 book ai didi

r - ggplot - 注释() - "Discrete value supplied to continuous scale"

转载 作者:行者123 更新时间:2023-12-04 12:34:15 26 4
gpt4 key购买 nike

我已经阅读了许多关于什么可能导致“离散值提供给连续尺度”错误的 SO 答案,但我仍然无法解决以下问题。就我而言,错误是由使用 annotate() 引起的。 .如果去掉+ annotate(...)一切正常。否则会引发错误。

我的代码如下:

base <- ggplot() + 
annotate(geom = "rect", ymin = -Inf , ymax = 0, xmax = 0, xmin = Inf, alpha = .1)
annotated <- base +
geom_boxplot(outlier.shape=NA, data = technicalsHt, aes(x = name, y = px_last))
> base # fine
> annotated
Error: Discrete value supplied to continuous scale

不幸的是,我无法给出导致此处使用的数据帧的代码(即 technicalsHt),因为它很长并且依赖于 API。对它的描述:
> str(technicalsHt)
'data.frame': 512 obs. of 3 variables:
$ date : Date, format: "2016-11-14" "2016-11-15" ...
$ px_last: num 1.096 0.365 -0.067 0.796 0.281 ...
$ name : Factor w/ 4 levels "Stock Price Strength",..: 1 1 1 1 1 1 1 1 1 1 ...

> head(technicalsHt)
date px_last name
1 2016-11-14 1.09582090 Stock Price Strength
2 2016-11-15 0.36458685 Stock Price Strength
3 2016-11-16 -0.06696111 Stock Price Strength
4 2016-11-17 0.79613481 Stock Price Strength
5 2016-11-18 0.28067475 Stock Price Strength
6 2016-11-21 1.10780834 Stock Price Strength

annotate的代码完美运行:
    base <- ggplot() 
annotated <- annotated +
geom_boxplot(outlier.shape=NA, data = technicalsHt, aes(x = name, y = px_last))
> annotated # fine

我试着玩弄 technicalsHt ,例如执行以下操作:
technicalsHt[,3] <- "hi"
technicalsHt[,2] <- rnorm(ncol(technicalsHt), 2,3)

但无论如何,使用 annotate语句引发错误。

编辑:
按照下面的答案,我试着把 dataaes在初始 ggplot打电话,有 geom_boxplot从一开始:
base <-                                  
# also tried: base <- ggplot(data = technicalsHt, aes(x = factor(name), y = px_last)) + geom_boxplot(outlier.shape=NA)
annotated <- base + ggplot(data = technicalsHt, aes(x = name, y = px_last)) + geom_boxplot(outlier.shape=NA)
annotate(geom = "rect", ymin = -Inf , ymax = 0, xmax = 0, xmin = Inf, alpha = .1)

这是有效的,但它并不是很令人满意,因为注释层(坐标系的阴影部分)然后覆盖了框。

(虽然例如, that link 也提到了与 annotate 相关的这个错误,那里给出的答案并没有解决我的问题,所以我非常感谢帮助。首先,哪个变量导致了问题?)

最佳答案

我遇到了这个问题并且没有找到我想要的答案,所以这是我的解决方案。这比绘制两倍的箱线图要漂亮一些。

如果要在存在离散比例时在点下方注释矩形,则需要将其指定为 ggplot

ggplot(mtcars, aes(factor(cyl), mpg)) + 
scale_x_discrete() +
annotate(geom = "rect", ymin = -Inf , ymax = 10, xmax = 0, xmin = Inf, alpha = .1) +
geom_boxplot()

关于r - ggplot - 注释() - "Discrete value supplied to continuous scale",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44064109/

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