我有一张风速与风向的关系图,它有大量的点,所以除了 colored颜色 =月份之外,我还使用alpha=I(1/20)

下面是一个代码示例:

library(RMySQL)
library(ggplot2)
con <- dbConnect(...)
wind <- dbGetQuery(con, "SELECT speed_w/speed_e AS ratio, dir_58 as dir, MONTHNAME(timestamp) AS month, ROUND((speed_w+speed_e)/2) AS speed FROM tablename;");

png("ratio-by-speed.png",height=400,width=1200)
qplot(wind$dir,wind$ratio,ylim=c(0.5,1.5),xlim=c(0,360),color=wind$month,alpha=I(1/30),main="West/East against direction")
dev.off()

这产生了一个像样的图表,然而我的问题是,传说的阿尔法也是1/30,这使得它不可读.有没有办法让传说变成1阿尔法?

下面是一个例子:

推荐答案

Update随着版本0.9.0的发布,现在可以使用guides函数中的override.aes覆盖图例中的美学值.因此,如果你在你的情节中添加类似的内容:

+ guides(colour = guide_legend(override.aes = list(alpha = 1)))

应该可以了.


我通过使用数据的一个空子集,并使用调用中的图例,对geom进行了一次重复调用,从而解决了这个问题.不幸的是,如果数据帧实际上是空的(例如,从subset(diamonds,FALSE)中可以看到),它就不起作用,因为ggplot2似乎对待这种情况就像对待NULL而不是数据帧一样.但是我们可以通过只取一行的子集,并在其中一个绘图维度上将其设置为NaN来获得相同的效果,这将阻止它被绘图.

根据蔡斯的例子:

# Alpha parameter washes out legend:
gp <- ggplot() + geom_point(data=diamonds, aes(depth, price, colour=clarity), alpha=0.1)
print(gp)

# Full color legend:
dummyData <- diamonds[1, ]
dummyData$price <- NaN
#dummyData <- subset(diamonds, FALSE)   # this would be nicer but it doesn't work!
gp <- ggplot() +
  geom_point(data=diamonds, aes(depth, price, colour=clarity), alpha=0.1, legend=FALSE) + 
  geom_point(data=dummyData, aes(depth, price, colour=clarity), alpha=1.0, na.rm=TRUE)
print(gp)

R相关问答推荐

为什么predicate.lm给出的是一个长度与我解析的数据集不同的载体?

使用gsim删除特殊词

有没有一种方法可以在子包上使用‘library()’中的‘exclub’参数?

用单个表达匹配多个替代模式

如何对数据集进行逆向工程?

从R导出全局环境中的所有sf(numrames)对象

当两个图层映射到相同的美学时,隐藏一个图层的图例值

如何使用R对每组变量进行随机化?

删除列表中存储的数据帧内和数据帧之间的重复行

在另存为PNG之前隐藏htmlwidget绘图元素

一小时满足条件的日期的 Select

在R中使用Scale_y_Break后更改y轴标签

如何提取所有完美匹配的10个核苷酸在一个成对的匹配与生物字符串在R?>

DEN扩展包中的RECT树形图出现异常行为

将一个字符串向量调整为与其他字符串向量完全相同的大小

从服务器在Shiny中一起渲染图标和文本

您是否可以使用facet_rap设置一个较低的限制来对ggmap上的比例中断进行zoom ?

汇总数据的Sheffe检验的P值(平均值和标准差)

R代码,用于在线条图下显示观测表

如何将EC50值绘制在R中的剂量-react 曲线上?