- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目标是消除刻度线和条形底部之间的空间,而不切断条形另一端之外的任何百分比标签。
我正在使用 R 的 ggplot2 运行数十个条形图,并尝试遵循我们的组织风格指南,该指南是使用 Excel 为每个图表手动开发的。最大长度条在不同图表中的长度不同,并且可能随着源数据的变化而变化,所以我不想手动设置限制。 [也许这里有一个解决方法:有没有办法根据输入自动调整限制?]
我已经咨询过:
Removing negative plot area in ggplot2
How to remove space between axis & area-plot in ggplot2?
Force the origin to start at 0 in ggplot2 (R)
http://docs.ggplot2.org/dev/vignettes/themes.html
从以下代码生成几乎可以工作的图表。出于公共(public)目的,我使用 MASS 包中的“quine”数据集。首先,我按年龄分组找到女性的百分比。然后我按女性百分比对年龄组进行排序。
require(MASS)
attach(quine)
p.SexAge <- prop.table(table(Sex, Age), 2)
perc.SexAge <- round(p.SexAge * 100)
perc.SexAge.flattened <- as.data.frame(perc.SexAge)
perc.SexAge.flattened.F <- subset(perc.SexAge.flattened, Sex == "F")
require(ggplot2)
ggplot(data=perc.SexAge.flattened.F, aes(x=reorder(Age, -Freq), y=Freq)) +
geom_bar(stat="identity", fill = "#00ABE1") +
scale_x_discrete(expand = c(0, 0)) +
scale_y_continuous(expand = c(0,6)) +
ggtitle("Percent Female By Age") +
ylab("Percent Female") +
xlab("Age Group\n") +
#theme_classic() +
theme(plot.margin = unit(c(0,0,0,0), "in")) +
coord_flip() +
geom_text(aes(label = Freq), vjust = 0.4, hjust = - 0.4, size = 3.5)
theme_classic()
以创建空白区域以满足我们的样式指南时,很明显在垂直轴刻度线和条形底部之间存在过多的空间。如果有更多的条(未显示),这个问题会变得更糟。
scale_y_continuous(expand = c(0,6))
更改为
scale_y_continuous(expand = c(0,0))
,
最佳答案
注意:expand
的实现将随着即将发布的 ggplot2
的发布而改变2.3.0 版本,两端都将具有灵 active 。以下答案将继续有效,但不再需要。见 ?expand_scale
.expand
不会成为你的 friend ,因为这两个参数是双方的乘法和加法扩展常数。所以c(0, 6)
将始终在每侧添加 6 个单位。连续数据的默认值为 c(0.05, 0)
两端的范围增加 5%。
我们可以预先计算所需的范围。左边界应始终设置为 0,我们将右边界设置为 max + 6。(如果图之间的范围变化很大,您也可以使用乘法因子。)
lim <- c(0, max(perc.SexAge.flattened.F$Freq) + 6)
#lim <- c(0, max(perc.SexAge.flattened.F$Freq) * 1.1) # 10% increase
ggplot(data=perc.SexAge.flattened.F, aes(x=reorder(Age, -Freq), y=Freq)) +
geom_bar(stat="identity", fill = "#00ABE1") +
scale_x_discrete(expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0), limits = lim) + #This changed!
ggtitle("Percent Female By Age") +
ylab("Percent Female") +
xlab("Age Group\n") +
theme_classic() +
theme(plot.margin = unit(c(0,0,0,0), "in")) +
coord_flip() +
geom_text(aes(label = Freq), vjust = 0.4, hjust = - 0.4, size = 3.5)
attach
,尤其是在其他人加载到他们的环境中的代码上。
关于r - 如何在没有手动限制的情况下在一侧而不是另一侧扩展 ggplot 条形刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36561030/
这可能是一个愚蠢的问题,但是要求图中顶点的最小集合的规范问题是什么,以便从这些顶点开始,所有其他顶点都可以通过“旅行”不超过一条边到达? 现实生活中的应用是:我需要认识哪些人,才能与地球上的其他人仅通
当浏览器在伪元素溢出并导致问题后调整绝对定位大小时。我正在寻找解决此问题的方法。只需调整浏览器大小,直到出现标题文本。 这是问题的演示:http://codepen.io/anon/pen/grKNo
我编写的 java 应用程序遇到了导致硬件性能问题的问题。问题(我相当确定)是我运行该应用程序的一些机器只有 1GB 内存。当我启动 java 应用程序时,我将堆大小设置为 -Xms 512m -Xm
Article 与 Medium 具有单向 ManyToOne 关系,它与下面的代码配合良好:保存和删除文章成功。 我想知道 JPA 是否有一种优雅的方式来删除最后一个子实体(在本例中为medium)
我想弄清楚如何在我的预约表格中将医生列表作为radio_buttons。现在,如果我使用“f.input :physician_id, :as => :radio_buttons”,我会得到一个“是/
我是一名优秀的程序员,十分优秀!