- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个问题:
- 如何使 geom_text 中的颜色与 geom_point 中的颜色相同?
- 如何删除图例标题?
假设有以下数据集:
library(ggplot2)
library(reshape2)
speed <- c(0, seq(from = 30, to = 330, by = 60))
power1 <- c(75, 85, 88, 85, 94, 92, 95)
power2 <- c(72, 82, 78, 69, 74, 85, 89)
dt <- data.frame(speed=speed, power1=power1, power2=power2)
dt <- melt(data = dt, id.vars = c("speed"))
我正在使用以下代码制作绘图:
p <- ggplot(data = dt, aes(x = speed, y = value, fill = variable)) +
geom_point(aes(color=variable), size = 2) +
stat_smooth(aes(color=variable), method = lm, formula = y ~ poly(x, 2), se = FALSE, size = 1)
p <- p + geom_text(aes(x = 100,
y = 93,
label = lm_eqn(lm(formula = value ~ poly(speed,2),
data = subset(x = dt, subset = variable == "power1")
)
)
),
color = "black",
parse = TRUE) +
geom_text(aes(x = 250,
y = 72,
label = lm_eqn(lm(formula = value ~ poly(speed,2),
data = subset(x = dt, subset = variable == "power2")
)
)
),
color = "black",
parse = TRUE)
p
标签的帮助函数:
lm_eqn = function(m) {
# from:
# https://stackoverflow.com/questions/7549694/ggplot2-adding-regression-line-equation-and-r2-on-graph
l <- list(a = format(coef(m)[1], digits = 2),
b = format(abs(coef(m)[2]), digits = 2),
c = format(abs(coef(m)[3]), digits = 2),
s1 = ifelse(test = coef(m)[2]>0, yes = "+", no = "-"),
s2 = ifelse(test = coef(m)[3]>0, yes = "+", no = "-"),
r2 = format(summary(m)$r.squared, digits = 3));
eq <- substitute(italic(y) == a~~s1~~b %.% italic(x)^2 ~~s2~~c%.% italic(x)*","~~italic(r)^2~"="~r2,l)
as.character(as.expression(eq));
}
剧情是这样的:
那么,如何:
- 将 geom_text 颜色更改为与点颜色相同?
- 删除图例标题?
最佳答案
首先,只需将 color = "power1"
和 color = "power2"
添加到相应的 geom_text()
调用中。这将设置适当的颜色,但会在您的图例中给您一个讨厌的(但预期)“a”。要删除“a”文本,请将 show_guide=FALSE
添加到每个 geom_text()
调用中。
其次,我相信您希望第一个 aes
调用具有 group = variable
not fill = variable
.当您尝试从图例中删除标题时,这将有助于消除混淆。要从图例中删除标题,请添加 guides(color = guide_lengend(title=NULL))
。
代码:
p <- ggplot(data = dt, aes(x = speed, y = value, group = variable)) +
geom_point(aes(color=variable), size = 2) +
stat_smooth(aes(color=variable), method = lm, formula = y ~ poly(x, 2), se = FALSE, size = 1) +
geom_text(aes(x=100, y=93, label="First Label", color="power1"), show_guide=F) +
geom_text(aes(x=250, y=72, label="Second Label", color="power2"), show_guide=F) +
guides(color = guide_legend(title=NULL))
p
结果:
注意:您需要小心使用 geom_text()
生成的重叠绘图 - 请参阅 post还有这个answer了解更多信息和想法。
关于r - 将 geom_text 颜色与绘图中的元素匹配并删除 ggplot2 中的图例标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27925153/
我正在制作多个倾斜条形图的实例。由于计数的大小和百分比的差异不同,在某些情况下,其中一个标签(计数)的一部分被推到栏外。在所有情况下,我都需要标签完全位于栏内。如果不重新定位以适合栏内,我需要标签按原
所以我的散点图的一些标签重叠。我曾尝试将 direct.label 与方法“smart.grid”一起使用,但它不会产生适当的结果。这是我目前的图表: 生成它的代码: ggplot(d, aes(x=
我将 ggplot 与 facet_grid 一起使用,我想在每个方面指示每个方面的观察数量。我遵循许多网站上提供的示例,但是当我让它写任何东西时,它会在所有四个图上将所有四个观察数字都写在彼此之上。
我尝试添加文本,如 Position geom_text on dodged barplot 但它不适用于我的简单数据 data=data.frame(s=c(10,13,17,8),
我想调整条形图上的文本。 我尝试调整 hjust/vjust 以按我喜欢的方式显示,但它似乎无法正常工作。 ggplot(data) + geom_bar(aes(name, coun
我正在尝试复制以下代码( thomasp85/gganimate )。我有两个问题: 我不想显示第一个 geom_point 的标签(变量:partidos); 我希望动画结束后,最后一个 geom_
我正在尝试使用 ggplot 在 R 中绘制堆积条形图。我还想在该片段的每条条中包含百分比。我尝试关注帖子 1 , 2 , 3但这些值并不完全在各自的 block 中。我的数据是 dropbox 中的
我有一个使用 ggplot2 制作的条形图.我想使用 geom_text 为每个条添加标签使得标签的文本大小与标签相对应。为此,我使用了以下代码: a <- aggregate(mpg ~ vs +
在文本中插入数学符号不应该像我想象的那么复杂! OTH,甚至看起来相似的例子 ggplot2 facet_wrap with mathematical expression 我仍然无法将Ω(欧米茄)符
我希望仅在堆积条形图的顶部添加标签。 这是我的数据框: #create data frame building <- c("Burj \nKhalifa", "Zifeng \nTower", "Ba
这里我将 colorRed 设置为 TRUE 所以文本是红色的。但是当我将它设置为 FALSE 时,颜色仍然是红色。 如何根据 colorRed 的值设置文本颜色? library(ggplot2)
所以我正在使用 Twitter API 来收集与特定主题相关的信息,我正在可视化的事情之一是设备的流行程度。 到目前为止,我有这个: https://gyazo.com/441a9ab80b943f9
我正在绘制一个图,其中使用 geom_text 将 p 值绘制为文本。 pvalues 在文件 pvaluesmir21combined 中给出。 如果值 pvaluesmir21combined
我想使用 geom_text()(其中 ^ 表示上标)将“R^2 = 70%”添加到我的绘图中。 没有 % 符号,很简单: my.data <- data.frame(x=1:5, y=1:5) p1
希望这里有人能够帮助我解决我正在尝试解决的 ggplot 脚本问题。脚本会多次使用不同的数据,所以需要比较灵活。我几乎在我想要的地方得到了它,但我遇到了一个我无法解决的问题。 该脚本用于在右侧边距中为
我有一个用 GGplot2 制作的情节。现在,当我想更改图中文本点的大小时,文本的大小不会改变。我使用以下代码行: ggplot(data = out, aes(x = V2, y = V1)) +
我需要更改 geom_text() 中的数字格式包括逗号。 我已经看到了相关的问题,但我无法让这些解决方案发挥作用。我已经尝试过“sep =”一个,count/sum(count) 类型,以及我在不知
使用 mtcars ,我正在为 cyl 创建条形图并填写 gear .没有车 cyl==8 & gear==4 .绘制时,我使用了 position_dodge(preserve = "single"
我的问题 我想用一个表达式来注释 ggplot() 的每个方面,该表达式是统计测试产生的值的组合。我无法在 geom_text() 中解析字符串。 一个类似的问题被部分覆盖了here .不幸的是,我无
请考虑以下最小示例: library(ggplot2) library(ggrepel) ggplot(mtcars) + aes(x = mpg, y = qsec) + geom_line
我是一名优秀的程序员,十分优秀!