仅在图形的一个区域上更改背景颜色[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仅在图形的一个区域上更改背景颜色[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我想改变图表的一部分的背景颜色。那可能吗?

例如,使用下面的图表我可能想表明我对重量在2到4吨之间的汽车特别感兴趣,因此希望使用粉红色背景突出显示该区域。

更具体地说,我想覆盖一个透明的粉红色矩形,它在x轴上从2伸展到4,覆盖整个y轴区域。

我该如何编码呢?

p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point()
答案

矩形很容易使用geom_rect (documentation)。你只需要在gees_rect的aes调用中指定它的尺寸。要在下面的代码中更改透明度更改alpha。

 require(ggplot2)
 p <- ggplot(mtcars, aes(wt, mpg)) 
 p + geom_point() + 
     geom_rect(aes(xmin = 2, xmax = 4, ymin = -Inf, ymax = Inf),
                   fill = "pink", alpha = 0.03))

这会产生类似你所追求的东西吗?

另一答案

虽然这是有效的,但我注意到它绘制了与数据点一样多的矩形,这可能是一个问题,特别是对于刻面之间点数变化的刻面。这通过非常低的α来反映,以获得仅约50%的透明度。我认为这是因为它使用了从ggplot()调用的data.frame和美学。

避免这种情况的一种方法是在geom_point()中调用aes()并专门为矩形创建一个data.frame。注意alpha是如何更大,但效果是相似的。

require(ggplot2)
ggplot(mtcars) + geom_point(aes(wt, mpg)) + 
geom_rect(data=data.frame(xmin = 2, xmax = 4, ymin = -Inf, ymax = Inf),
    aes(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax), fill="pink", alpha=0.5)

Result enter image description here

以上是关于仅在图形的一个区域上更改背景颜色[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用颜色选择器更改片段中edittext的背景颜色

如何从片段更改 Tablayout 的背景颜色?

SwiftUI 2.0如何更改表单部分的背景颜色[重复]

以另一种颜色更改选择选项时出现问题[重复]

Matplotlib pyqt 导航工具栏更改“图形选项”的背景颜色

更改选项卡式视图 SwiftUI 的凹槽区域背景颜色