首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我想用ggplot2将我的背景分成两种颜色来表示水平条形图。

我想用ggplot2将我的背景分成两种颜色来表示水平条形图。
EN

Stack Overflow用户
提问于 2018-06-15 05:15:38
回答 1查看 604关注 0票数 1

在我的水平条形图上有4组3条。我希望前两组(前6小节)以彩色小麦1为背景,后两组(即下6小节)有背景色小麦2。请看下面的链接,看看我到目前为止有什么。

我有四个区域的空间,远左空间(LS),中心左空间(LS),中心右空间(RS-C)和极右空间(RS)。我有三个条件A,B,C。加起来意味着我有12个条件。

我的数据类似于这个fakedata

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
condition <- c( "LS-A", "LS-B","LS-C", "LS-C-A", "LS-C-B", "LS-C-C", 
            "RS-C-A", "RS-C-B", "RS-C-C", "RS-A", "RS-B", "RS-C")
as.factor(condition )

condition <- factor(condition, 
                    levels = c("LS-A","LS-B","LS-C","LS-C-A","LS-C-B","LS-C-C", "RS-C-A","RS-C-B","RS-C-C", "RS-A","RS-B", "RS-C"))
#put them in the order I Want to appear on the graph

region <- c("Far-right", "Far-right", "Far-right", "RC", "RC", "RC", "LC", "LC", "LC", "Far-left", "Far-left", "Far-left")
as.factor(region)
region <-factor(region, 
                    levels = c("Far-right", "RC", "LC", "Far-left"))

mean <- c(-2, -1, 2, -3, 4, 2, -4, 2, 4, 2, 4, 1)

fakedata <- data.frame(condition, region, mean)

这是我到目前为止掌握的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 1: horizontal barplot
p <- ggplot(fakedata,  aes(x=region, y = mean, fill= condition )) +
geom_bar(width=.6, position = position_dodge(width=0.6), stat = "identity", color = "black", size = 0.3) +  
 coord_flip(ylim = c(-5, 5)) 

p <- p + scale_fill_manual(values=c("yellow", "green1", "royalblue", "yellow", "green", "blue", "yellow", "green", "blue","yellow", "green", "blue"))
p <- p + theme(legend.position = "none") 

p <- p + theme_bw() + theme(panel.border = element_blank(), panel.grid.major = element_blank(),
                       panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"), legend.position = "none")

p <- p + theme (panel.background = element_rect(linetype= "solid", color = "black", fill=NA, size = 0.5))
p <- p + geom_abline(mapping = NULL, intercept = 0, slope= 0, color = "black", size= 0.25, show.legend = NA)

到目前为止请看一下我的图表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-15 19:12:57

您可以使用geom_rect对所需区域进行着色。

P.S:您的as.factor(condition)as.factor(region)不需要,因为您没有将它们分配回condition & region

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(ggplot2)

condition <- c(
  "LS-A", "LS-B", "LS-C", "LS-C-A", "LS-C-B", "LS-C-C",
  "RS-C-A", "RS-C-B", "RS-C-C", "RS-A", "RS-B", "RS-C"
)
condition <- factor(condition,
  levels = c(
    "LS-A", "LS-B", "LS-C", "LS-C-A", "LS-C-B", "LS-C-C",
    "RS-C-A", "RS-C-B", "RS-C-C", "RS-A", "RS-B", "RS-C"
  )
)
# put them in the order I want to appear on the graph

region <- c(
  "Far-right", "Far-right", "Far-right", "RC", "RC", "RC", "LC", "LC",
  "LC", "Far-left", "Far-left", "Far-left"
)
region <- factor(region, levels = c("Far-right", "RC", "LC", "Far-left"))

mean <- c(-2, -1, 2, -3, 4, 2, -4, 2, 4, 2, 4, 1)

fakedata <- data.frame(condition, region, mean)

ggplot(fakedata, aes(x = region, y = mean, fill = condition)) +
  # plot geom_rect first so it will stay in the background
  # lower region: Far-right and RC are factor level 1 & 2
  geom_rect(
        fill = "wheat3",
        xmin = 0,
        xmax = 2.5,
        ymin = -5, 
        ymax = 5) +   
  # upper region: Far-left and LC are factor level 3 & 4
  geom_rect(
          fill = "wheat1",
          xmin = 2.5,
          xmax = 5.0,
          ymin = -5,
          ymax = 5) +
  geom_col(width = .6, position = position_dodge(width = 0.6), 
           color = "black", size = 0.3) +
  coord_flip(ylim = c(-5, 5)) +
  scale_y_continuous(expand = c(0, 0)) +
  scale_fill_manual(values = c("yellow", "green1", "royalblue", 
                              "yellow", "green", "blue", 
                              "yellow", "green", "blue", 
                              "yellow", "green", "blue")) +
  theme_bw() + 
  # any modified theme needs to be after theme_bw()
  theme(panel.border = element_blank(), 
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(), 
        axis.line = element_line(colour = "black"), 
        legend.position = "none") +
  theme(panel.background = element_rect(linetype = "solid", 
                                       color = "black", 
                                       fill = NA, 
                                       size = 0.5)) +
  geom_abline(mapping = NULL, intercept = 0, slope = 0, 
             color = "black", size = 0.25, show.legend = NA)

或者,annotate("rect", ...)也可以完成任务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(fakedata, aes(x = region, y = mean)) +
  geom_col(aes(fill = condition), 
           width = .6, 
           position = position_dodge(width = 0.6), 
           size = 0.3) +
  annotate("rect",
           alpha = 0.4,
           fill = "wheat3",
           xmin = 0, xmax = 2.5,
           ymin = -5, ymax = 5) +
  annotate("rect",
           alpha = 0.4,
           fill = "wheat1",
           xmin = 2.5, xmax = 5.0,
           ymin = -5, ymax = 5) +
  coord_flip(ylim = c(-5, 5)) +
  scale_y_continuous(expand = c(0, 0)) +
  scale_fill_manual(values = c("yellow", "green1", "royalblue", 
                               "yellow", "green", "blue", 
                               "yellow", "green", "blue", 
                               "yellow", "green", "blue")) +
  theme_bw() +
  theme(panel.border = element_blank(), 
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(), 
        axis.line = element_line(colour = "black"), 
        legend.position = "none") +
  theme(panel.background = element_rect(linetype = "solid", 
                                        color = "black", 
                                        fill = NA, 
                                        size = 0.5)) +
  geom_abline(mapping = NULL, intercept = 0, slope = 0, 
              color = "black", size = 0.25, show.legend = NA)   

reprex封装创建于2018-06-15 (v0.2.0)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50876423

复制
相关文章
MIPI CSI2学习(一):说一说MIPI CSI2
MIPI联盟是一个开放的会员制组织。2003年7月,由美国德州仪器(TI)、意法半导体(ST)、英国ARM和芬兰诺基亚(Nokia)4家公司共同成立。MIPI联盟旨在推进移动应用处理器接口的标准化 。MIPI联盟下面有不同的WorkGroup,分别定义了一系列的手机内部接口标准,比如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风/喇叭接口SLIMbus等。
233333
2019/08/14
2.7K0
球型摄像机、子弹型摄像机、炮塔型摄像机和鱼眼摄像机,该如何选择?
球型摄像机,也称为球机摄像机,是一种外形呈球形的摄像机。它具有全向旋转和俯仰功能,可在水平和垂直方向上进行灵活的调整和转动。球型摄像机通常具有较小的尺寸,且外形较为隐蔽。
网络技术联盟站
2023/09/06
8720
球型摄像机、子弹型摄像机、炮塔型摄像机和鱼眼摄像机,该如何选择?
球型摄像机、子弹型摄像机、炮塔型摄像机和鱼眼摄像机,该如何选择?
在安防监控领域,选择适合的摄像机类型对于实现有效的监控和安全管理至关重要。而在众多摄像机类型中,球型摄像机、子弹型摄像机、炮塔型摄像机和鱼眼摄像机是常见的选项。本文将详细介绍这四种摄像机类型的特点、适用场景和优缺点,以帮助读者在购买摄像机时做出明智的选择。
网络技术联盟站
2023/06/18
6000
球型摄像机、子弹型摄像机、炮塔型摄像机和鱼眼摄像机,该如何选择?
ISP图像处理之image output interface
手机,车载sensor常见的接口主要是DVP和MIPI。 DVP是比较老的并行接口;MIPI是高速串行接口。另外安森美自己搞了一个HiSPi接口,但是只有他家自己在用,和MIPI差不多。
AomanHao
2022/01/14
1.1K0
ISP图像处理之image output interface
NVIDIA Xavier NX模组要出货了,盘点一下支持NX模组的载板
我们已经透露了NVIDIA Xavier NX的最新状况:关于NVIDIA AGX Xavier NX的最新进展
GPUS Lady
2020/05/07
2.6K0
Unity-摄像机
远近裁剪面被称定义为摄像机视锥。在视锥之外的对象将不会被渲染,这个过程被称为视锥剔除,无论在游戏中是否使用遮挡剔除,都会有是视锥剔除的过程。 有的时候我们想更早的剔除一些较小的游戏物体,小的石头、废品等,在较远的时候不容易看见的物体,可以将这些小的游戏物体设置为一个单独的图层,使用Camera.layerCullDistances方法设置剔除距离。
祝你万事顺利
2019/08/05
9900
Unity-摄像机
opengl入门-摄像机
从右往左看,第一个矩阵调整原始点的位移,模拟相机的反向位移,第二个矩阵模拟坐标的旋转。没有理解原理硬记下也是可以的。
公号sumsmile
2020/06/15
1.2K0
opengl入门-摄像机
摄像机镜头选择
不同摄像机的图像传感器靶面大小不同,但常用传感器规格为4:3(H:V) 镜头成像尺寸需要大于等于摄像机成像尺寸,否则四周有黑边
治电小白菜
2022/07/08
8610
摄像机镜头选择
MIPI CSI-2
1 MIPI简介2 MIPI CSI-2简介2.1 MIPI CSI-2 的层次结构2.2 CSI-2协议层2.3 打包/解包层2.4 LLP(Low Level Protocol)层2.5 通道管理(Lane Management)层2.6 物理层(PHY Layer)3 MIPI CSI2的物理连接4 MIPI CSI2的工作模式5 MIPI CSI2的数据包格式5.1 MIPI CSI2的长包格式5.2 MIPI CSI2的短包格式6 基于FPGA的MIPI接口实现6.1 接口描述6.2 模块分析6.2.1 解串模块6.2.2 协议模块6.2.3 RAW 10bit生成模块6.3 实例应用6.3.1 硬件结构框图6.3.2 IIC配置6.3.3 实验结果7 参考链接附:资料获取
瓜大三哥
2020/06/09
1.9K0
怎样使用摄像机-索尼数码摄像机使用及技巧【教程】
  现在不仅仅只有专业的摄像师会使用摄像机,现在很多家庭自己也会购买摄像机。摄像机就是可以把拍摄的光信号转换成电信号,这样储存或者运输起来更加的方便。很多人购买摄像机的时候会选择索尼数码摄像机,但是很多人对于索尼数码摄像机的使用不是很了解,今天就为您介绍一下索尼数码摄像机的使用以及技巧,希望对您有帮助。
宜轩
2022/12/26
7640
怎样使用摄像机-新手使用摄像机注意事项有哪些 摄像机使用注意事项【介绍】
  现在随着家用摄像机的流行,很多人都希望自己当导演,记录身边一些美好的瞬间。不过刚开始拍摄的画面都不是那么满意。那么新手使用摄像机有哪些注意事项呢?今天小编就为大家简单的介绍一下,这些坑可不能再跳了!
宜轩
2022/12/26
7040
网络摄像机(IPC)介绍
网络摄像机是一种结合传统摄像机与网络技术所产生的新一代摄像机,它可以将视频影像通过网络传至地球另一端,且远端的浏览者不需用任何专业软件,只要标准的网络浏览器(如“Microsoft IE或Netscape)即可监视其视频影像。网络摄像机一般由镜头、图像传感器、声音传感器、信号处理器、A/D转换器、编码芯片、主控芯片、网络及控制接口等部分组成。
用户6280468
2023/09/21
2.3K0
网络摄像机(IPC)介绍
【Unity3D】Unity 组件 ④ ( 摄像机 | 调整摄像机 | 手工调整 | 3D 视图对齐 Align with View 调整摄像机 )
创建新的 Scene 场景时 , 会自带一个 主摄像机 Main Camera , 其主要作用是进行 摄像 , 游戏玩家看到的画面就是 由 摄像机 拍摄下来的 , 拍摄结果可以在 Game 窗口展示 ;
韩曙亮
2023/03/30
1.6K0
【Unity3D】Unity 组件 ④ ( 摄像机 | 调整摄像机 | 手工调整 | 3D 视图对齐 Align with View 调整摄像机 )
怎样使用摄像机-海康威视网络摄像机连接、使用方法
  首先,登陆海康威视官网然后依次选择服务与支持→下载→ Tools(含SADP、录像容量计算等工具)→设备网络搜索软件 (SADP)。
宜轩
2022/12/26
4.2K0
怎样使用摄像机-索尼高清摄像机使用方法简要介绍【教程】
  导语:索尼是我们大家都非常熟悉的一个品牌,在我们的日常生活中到处都可以见到索尼的产品,包括 电视机 、手机以及数码相机等等。除了这些产品之外,索尼的高清摄像机也是比较知名的。那么索尼高清摄像机到底
宜轩
2022/12/26
1.2K0
unity摄像机控制篇
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
bering
2019/12/03
1.3K0
一文带你搞懂 MIPI 框架
1、MIPI 联盟,即移动产业处理器接口(Mobile Industry Processor Interface)联盟。MIPI 是 MIPI 联盟发起的为移动应用处理器制定的开放标准和一个规范。
Jasonangel
2022/02/17
2.2K0
一文带你搞懂 MIPI 框架
优秀的 Verilog/FPGA开源项目介绍(六)- MIPI
带有DPHY的专用FPGA。目前国内一些FPGA厂商是有的,如高云的FPGA是有自带DPHY(小蜜蜂家族),xilinx的UltraScale系列 支持MIPI D-PHY接口,Altea/Intel、Lattice等最新系列FPGA也是具有这一接口的。
碎碎思
2021/11/17
4.4K0
优秀的 Verilog/FPGA开源项目介绍(六)- MIPI
OpenGL-投影和摄像机
本文介绍了从相机内外参数的标定、立体匹配、多视几何、投影映射、体渲染等多个方面,系统地讲解了移动设备GPU上基于光线的3D渲染从输入到输出的整个过程。同时,通过实例介绍了在移动端GPU上实现这些算法的具体实现方式和优化策略,包括Vulkan、Metal、OpenGL ES、WebGL等多种平台上的实现。本文旨在帮助读者了解3D渲染技术的基本原理,以及在移动端GPU上实现这些算法的具体实现方式和优化策略,包括Vulkan、Metal、OpenGL ES、WebGL等多种平台上的实现。
MelonTeam
2018/01/08
3.3K0
OpenGL-投影和摄像机
Vuforia打开关闭摄像机
立羽
2023/08/24
1780

相似问题

Python 2.7转换为3

12

将python 2.7转换为python 3.8

21

将AS3转换为Java

10

将java 1.8转换为1.6

20

JAVA:将02转换为FEB

60
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文