- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以当我必须绘制很多线条时,我可以通过颜色或线型来区分它们
library(ggplot2)
pd = cbind.data.frame(x = rep(c(1,2), each = 4),
y = rep(1:4, times=2),
type = rep(c("A", "B", "C", "D"), times=2))
ggplot(pd, aes(x=x, y=y, col=type)) + geom_line() + theme_bw()
ggplot(pd, aes(x=x, y=y, lty=type)) + geom_line() + theme_bw()
给予:
但我想要两者并且我希望自动选择颜色和线型(即我不想为每个 type
手动指定颜色和线型,如这个问题:ggplot2 manually specifying color & linetype - duplicate legend)。
这是我想要的输出的示例(加上自动生成的图例):
理想的是这样的命令
ggplot(pd, aes(x=x, y=y, style=type)) + geom_line() + theme_bw()
但我想需要有一个解决方法。
P.S:这样做的动机是 20 多条线很难单独通过颜色或线型来区分,这就是为什么我正在寻找两者的组合。所以红色虚线不同于红色实线,两者都不同于蓝色实线。而且我不想在每次将数据提供给 ggplot 时自己指定和选择颜色和线型。
最佳答案
我知道您想避免手动指定,但它不必像您链接到的示例那样令人生畏。以下 20 行示例(color_lty_cross
最多可容纳 60 行):
library(ggplot2)
pd = cbind.data.frame(x = rep(c(1,2), each = 20),
y = rep(1:20, times=2),
type = rep(LETTERS[1:20], times=2))
# this function regenerates ggplot2 default colors
gg_color_hue <- function(n) {
hues = seq(15, 375, length = n + 1)
hcl(h = hues, l = 65, c = 100)[1:n]
}
color_lty_cross = expand.grid(
ltypes = 1:6,
colors = gg_color_hue(10)
,stringsAsFactors = F)
ggplot(pd, aes(x=x, y=y, col=type, lty = type)) +
geom_line() +
scale_color_manual(values = color_lty_cross$colors[1:20]) +
scale_linetype_manual(values = color_lty_cross$ltypes[1:20]) +
theme_bw()
您可以通过合并快速映射到 type
您可以使用更简单的颜色,然后使用映射 ggplot2 默认值的 gg_color_hue
。
gg_color_hue
归功于 Emulate ggplot2 default color palette .关于r - ggplot2:按颜色和线型区分线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31275054/
我是 ggplot 的新手,所以请耐心等待。我正在绘制 35 个小区域地理的增长预测,即使使用了很棒的 directlabels 对于一个地块来说,这是一个不健康的数量。图书馆。但是我需要所有系列进行
在我下面的图表中,我希望图例反射(reflect)实际的线型,即“距离”的蓝线也应该在图例中用虚线表示。我如何实现这一目标? 在我的代码下面。谢谢! data <- structure(list(Ye
我有一个使用 step-before 插值的折线图(尽管如果使用 step-after,同样的问题也适用)。我希望垂直线段的颜色比水平线段的颜色浅。我怎样才能做到这一点? 最佳答案 单一路径必须是单一
我正在使用 React 和 Google Charts,我刚刚发现一个我找不到解决方案的问题。 我有这个组件 这里是数据和选项的值: const data = [ ["Year",
我是一名优秀的程序员,十分优秀!