相关疑难解决方法(0)

ggplot2:在不同的层上系统地多种颜色标度或颜色变换?

当我制作盒子图时,我也喜欢在后台显示原始数据,如下所示:

library(ggplot2)
library(RColorBrewer)

cols = brewer.pal(9, 'Set1')

n=10000
dat = data.frame(value=rnorm(n, 1:4), group=factor(1:4))

ggplot(dat, aes(x=group, y=value, color=group, group=group)) +
  geom_point(position=position_jitter(width=0.3), alpha=0.1) +
  scale_color_manual(values=cols) +
  geom_boxplot(fill=0, outlier.size=0)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,我不喜欢它当点太密集时我的盒子图完全消失了.我知道我可以调整alpha,这在某些情况下很好,但是当我的团队密度不同时(例如,如果我减少alpha到最轻的组会完全消失,以便最暗的组不会遮挡框图) .我正在尝试做的是系统地改变箱形图的颜色 - 可能有点暗 - 这样即使背景点最大化了alpha,它们也会出现.例如:

plot(1:9, rep(1, 9), pch=19, cex=2, col=cols)
cols_dk = rgb2hsv(col2rgb(brewer.pal(9, 'Set1'))) - c(0, 0, 0.2)
cols_dk = hsv(cols_dk[1,], cols_dk[2,], cols_dk[3,])
points(1:9, rep(1.2, 9), pch=19, cex=2, col=cols_dk)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

到目前为止,我还没有找到一种方法来伪造一个不同scale_colorgeom_boxplot层(如果有办法,这似乎是最简单的路线).我也没有能够找到一种简单的语法来系统地调整颜色,就像你可以轻松地抵消连续美学一样aes(x=x+1).

我能得到的最接近的是完全复制因子的水平......

ggplot(dat, aes(x=group, y=value, color=group, group=group)) +
  geom_point(position=position_jitter(width=0.3), alpha=0.1) +
  scale_color_manual(values=c(cols[1:4], cols_dk[1:4])) …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

33
推荐指数
3
解决办法
8864
查看次数

在同一ggplot中绘制离散和连续的比例

我想使用ggplot2绘制一些不同的数据项,使用两个不同的色标(一个连续和一个离散来自两个不同的df).我可以准确地描绘出我个人喜欢的方式,但我不能让它们一起工作.看起来你不能在同一个情节中运行两种不同的色标吗?我在这里这里看到过类似的问题,这让我相信我想要实现的目标在ggplot2中是不可能的,但是如果我错了,我想说明我的问题,看看是否有变通.

我有一些GIS流数据,附有一些分类属性,我可以绘制(p1在下面的代码中)以获得: 在此输入图像描述

我还有一组具有连续响应的位置,我也可以绘制(p2在下面的代码中)以获得: 在此输入图像描述 但是我无法将两者结合起来(p3在下面的代码中).我收到这个错误

比例误差[[prev_aes]]:尝试选择少于一个元素

注释掉该行scale_colour_hue("Strahler order") +会将错误更改为

错误:提供给连续刻度的离散值

基本上似乎ggplot2对geom_path呼叫和geom_point呼叫使用相同的比例类型(连续或离散).因此,当我将离散变量传递 factor(Strahler)scale_colour_gradientn比例时,绘图失败.

有没有解决的办法?如果有data一个scale函数的参数告诉它应该映射或设置属性,那将是惊人的.这甚至可能吗?

非常感谢和可重现的代码如下:

library(ggplot2)

### Download df's   ###
oldwd <- getwd(); tmp <- tempdir(); setwd(tmp)
url <- "http://dl.dropbox.com/u/44829974/Data.zip"
f <- paste(tmp,"\\tmp.zip",sep="")
download.file(url,f)
unzip(f)


### Read in data    ###
riv_df <- read.table("riv_df.csv", sep=",",h=T)
afr_df <- read.table("afr_df.csv", sep=",",h=T)
vil_df <- read.table("vil_df.csv", sep=",",h=T)


### Min and max for plot area   ###
xmin …
Run Code Online (Sandbox Code Playgroud)

gis graphics r ggplot2

10
推荐指数
2
解决办法
9234
查看次数

标签 统计

ggplot2 ×2

r ×2

gis ×1

graphics ×1