首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么给我的`geom_bar`添加` `position = "dodge"`会导致值显示不正确?

geom_bar添加position = "dodge"会导致值显示不正确的原因是,position = "dodge"会将数据按照x轴上的分类变量进行分组,并在每个分组内部进行堆叠显示。这样会导致每个分组内部的条形图宽度相同,但高度会根据数据的值进行调整,从而使得值显示不正确。

解决这个问题的方法是,可以使用geom_col代替geom_bar,并将position = "dodge"移动到geom_col的参数中。这样做可以确保每个分组内部的条形图宽度和高度都正确显示。

以下是一个示例代码:

代码语言:txt
复制
library(ggplot2)

# 创建一个示例数据集
data <- data.frame(
  category = c("A", "A", "B", "B"),
  value = c(10, 20, 30, 40)
)

# 使用geom_col和position = "dodge"来绘制条形图
ggplot(data, aes(x = category, y = value, fill = category)) +
  geom_col(position = "dodge")

在这个示例中,我们使用geom_col代替geom_bar,并将position = "dodge"放在geom_col的参数中。这样绘制的条形图就能正确显示每个分组内部的值。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云容器服务(TKE)。

腾讯云云服务器(CVM)是一种弹性计算服务,提供可扩展的计算能力,适用于各种应用场景。您可以根据实际需求选择不同配置的云服务器,并且可以根据业务负载自由调整规模。了解更多信息,请访问:腾讯云云服务器(CVM)

腾讯云容器服务(TKE)是一种高度可扩展的容器管理服务,可帮助您轻松部署、运行和管理容器化应用程序。它提供了强大的自动化功能,包括自动伸缩、负载均衡和自动修复,以确保应用程序的高可用性和性能。了解更多信息,请访问:腾讯云容器服务(TKE)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

数据挖掘知识脉络与资源整理(九)–柱形图

三维柱形图 三维柱形图使用可修改三个轴(水平轴、垂直轴和深度轴),可对沿水平轴和深度轴分布数据点(数据点:在图表中绘制单个,这些由条形、柱形、折线、饼图或圆环图扇面、圆点和其他被称为数据标记图形表示...= "dodge") 我们发现fill后面跟着是一个变量,且是一个分类变量,得到结果是颜色根据分类不同使用不同颜色. position = "dodge"将同类条形图并排放着,(dodge英文意思是闪躲回避意思...另外我们发现,上面图形都是两两一组,那如果有一组就一个怎么办,那么图形确失一条bar,然后加宽,具体看图 ce <- cabbage_exp[1:5, ] ggplot(ce, aes(x = Date..., fill = Cultivar)) + geom_bar(stat = "identity", width = 0.5, position = position_dodge(0.7)) 6、 条形图摆放...guides(fill = guide_legend(reverse = TRUE)) 7、 添加标签 给每一个bar添加一个标签,表示其具体数值是多少.这里标签使用是weight变量数值,因为纵坐标本来就是

3.7K100
  • R语言学习 - 柱状图

    y=value)) p + geom_bar(stat="identity", position="dodge", aes(fill=variable)) # 如果没有图形界面,运行下面的语句把图存在工作目录下...每个基因原始表达堆积柱状图 (只需要修改positon=stack) # position="fill" 展示是堆积柱状图各部分相对比例 # position="stack" 展示是堆积柱状图原始...比较每组各个基因相对表达 (position=fill) # position="fill" 展示是堆积柱状图各部分相对比例 # position="stack" 展示是堆积柱状图原始,可以自己体现下看卡差别...纵轴显示改为百分比 p <- ggplot(data_m, aes(x=variable, y=value)) + geom_bar(stat="identity", position="fill...=position_dodge(width=0.75)) + facet_wrap(~Condition, ncol=1) p 每组里面各个基因相对表达, 纵轴显示改为百分比 # position

    2.5K50

    R-sysfonts+showtext包 -告别windows字体添加烦恼

    作图时候常出现一个问题,我把windows系统字体Times New Roman指定为图形里字体,虽然在RStudio图形窗口显示指定字体,但是在保存为PDF时出现问题,出现字体类别错误,指定字体无法显示...(stat = "identity", position = "dodge", width=0.5) + # 条形图位置,柱子宽度 scale_fill_hue(labels = c("组一",...添加系统字体 font_add("myFont1", "timesbd.ttf") # myFont1赋予字体名称,timesbd.ttf 为 Times New Roman粗体 font_add("...(stat = "identity", position = "dodge", width=0.5) + # 条形图位置,柱子宽度 scale_fill_hue(labels = c("组一",...(stat = "identity", position = "dodge", width=0.5) + # 条形图位置,柱子宽度 scale_fill_hue(labels = c("组一",

    5.6K20

    R语言 | 条形图绘制

    本次内容介绍条形图绘制,包括基本条形图、簇状条形图、频数条形图、堆积条形图、百分比条形图。 下次将介绍如何对条形图着色、调整条形图宽度和间距、添加数据标签等内容。...ggplot(cabbage_exp,aes(x = Date,y = Weight,fill = Cultivar)) + geom_col(position = 'dodge') Tips:最基本条形图通常只对应一个绘制在...position='dodge'以使得两组条形在水平方向上错开排列,否则,系统输出堆积条形图。...= "fill",将y调整为0~1。...(),同时不要映射任何变量到y参数,geom_bar()函数在默认情况下将参数设定为stat = "bin",该操作自动计算每组(根据x轴上面的变量进行分组)变量对应观测

    2.2K20

    这些条形图用法您都知道吗?

    、形状变量、填充色变量等); # 绘制条形图函数 geom_bar(mapping = NULL, data = NULL, stat = "count", position = "...前提是绘图数据已做了统计汇总); position:用于设置条形图摆放位置,默认为'stack',表示绘制堆叠条形图;如果指定为'dodge',表示绘制水平交错条形图;如果为'fill',表示绘制百分比堆叠条形图...函数中; na.rm:bool类型参数,在剔除绘图数据中缺失时,是否不返回警告信息,默认为FALSE; show.legend:bool类型参数,是否显示条形图图例信息,默认为NA,即表示显示图例...在实际应用中,对于单离散变量和单数值变量条形图,右图更加受欢迎,因为它更加直观(借助于排序可以迅速地发现柱子最高、最低及差异;借助于数值标签可以明确地得知各离散水平下具体;借助于参考线可以比较哪些水平高于平均水平...)) + geom_bar(stat = 'count', position = 'dodge' # 条形图摆放位置设置为水平交错 ) + labs(x =

    5.5K10

    56-R可视化-5-ggplot2基石三部曲之基础二

    当我们通过 ggplot(data=example) 后,便相当于设定了默认ggplot2 设定背景图层,接着依靠 +geom_point() , +geom_bar() 等等,便可以实现图层添加...也正因其代表不同图层,因此也可以利用新图层对旧图层进行叠加(或覆盖)。 先后顺序 但也正和图层叠加一样,R中ggplot 叠加也有先后顺序,后来图层覆盖在原来图层上。...散点图 jitter 通过为本来重叠在同一位置添加随机“抖动”,使重叠点产生错位,也因此能够完全地显示在图像里。 柱状图 dodge 可以让组中直方图并列显示。...(适合组间或组内参数比较) ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, fill = clarity), position...= "dodge") image.png stack 默认直方图其位置参数即为 stack 。

    1.9K20

    基于 R 语言科研论文绘图技巧详解(2)

    绘制带误差项柱状图并添加密度函数线。 简单曲线图并添加公式。 之后,将两幅图合并。...后面几幅图一一介绍,读者在学习过程中,可以将内部学到知识点应用到自己图形绘制中。推文已经将主要知识点进行罗列,更有利于读者学习和查阅。...绘制子图一(条形、密度函数、误差图) 使用 geom_bar() 绘制条形图,注意这里使用了 position=position_dodge() 将小类并列放置,具体细节可以参考:《R语言教程》[3];...(stat = "identity", position=position_dodge()) + # dodge overlapping objects side-to-side...=position_dodge(.9)) 微调主题 之后添加主题,使用先前设定好主题函数 my_theme() 与其他细节调整。

    99020

    ggplot2绘制科研数据柱状图~

    从今天起小编计划为各位观众老爷们带来一个ggplot2系列教程。那么首先呢,大家在可视化自己科研数据时,最最最常用就是绘制一个带误差或者显著柱状图。...由于数据比较复杂不方便自己创建,我们这里使用ggplot2自带汽车数据集mpg为例绘制叠加柱状图。 如果我们直接绘制原始数据柱状图,显示是每种汽车种类及其个数。...ggplot(mpg,aes(x=class)) + geom_bar(aes(fill=factor(year)),position="stack") ggplot(mpg,aes(x=class...)) + geom_bar(aes(fill=factor(trans)),position="stack") 叠放方式还可以换成分组并排放置。...ggplot(mpg,aes(x=class)) + geom_bar(aes(fill=factor(year)),position="dodge") ‍ 小编总结 大家快来DIY自己想要柱状图吧

    2.5K00

    「R」数据可视化22 : 怎么获取CNS级颜色搭配

    虽然对于大部分实验数据而言,可能往往只涉及到几组,即需要几种颜色,然而在组学分析中则常常可能需要数十种甚至更多颜色来表示不同物质。那么如何在R中选择好看颜色呢?...depth < 70), aes(x = depth, fill = cut)) + geom_histogram(colour = "black", binwidth = 1, position...= "dodge") + theme_bw() #使用NPG color p1_npg = p1 + scale_color_npg() p2_npg = p2 + scale_fill_npg...有意思是,这个网站提供了多种玩法:1、直接选择上面已经组合好颜色使用 2、在某种搭配基础上修改亮度,删除或添加颜色 3、由网站根据某种要求随机生成 4、从图片中提取颜色 ......具体大家可以自己去探索。 4. colorbrewer2.org colorbrewer2也是一个提供颜色网站,通过地图显示。但是最多只能提供12个颜色组合。 5.

    1.9K20

    一小时掌握R语言数据可视化

    counts或sum,也就是像下面这样子:因为我们x只有1、2、3单独三个,所以直接geom_bar()高度相同,但如果判断x<2,那么有一个满足,两个不满足,所以高度分别是1和2 > ggplot...如果我们想要把多种取值统计数目累加显示在柱状图上,可以这样:这里面对同一个x,不同y出现总数不一样,累加起来就像下图展示,其中如果y是数字,那么想把他当成类别,需要转成factor > x <- rep...(y)), position="dodge") > ggplot(data, aes(x)) + geom_bar(aes(fill=factor(y)), position="fill") 利用geom_density...: > ggplot(data, aes(x)) + geom_density(adjust = 1/5) 如果我们想按照不同y来分开画密度图,并且用不同颜色来表示不同y,那么我们可以用描边方式...参数来显示累计情况: > ggplot(data, aes(x, fill = factor(y))) + geom_density(adjust = 1/5, position='fill') > ggplot

    1.2K120

    跟着JoVE学作图:R语言ggplot2做簇状柱形图并添加显著性标记完整示例

    添加显著性标记用到是ggsignif包中geom_signif()函数 在昨天推文基础上,如果是利用带重复原始数据作图,然后利用geom_signif()函数作图时候我遇到了报错,暂时还不知道如何解决...+ geom_bar(position=position_dodge(), stat="identity")+ scale_fill_manual(values=c("#CCCCCC", "#666666...=position_dodge(0.9))+ #this line of code makes the bar that extends across the 3-nonsig materials...,知道显著性以后再往上添加 另外3组也是一样方式添加 p1+ geom_signif(data=df, aes(xmin=0.75, xmax=1.25, annotations...还需要仔细学习下geom_signif()函数用法,学习如何在簇状柱形图基础上自动添加显著性检验结果

    3.8K10
    领券