小编sil*_*ita的帖子

ggplot 2.0.0中的磅值

自从我更新到ggplot版本2.0.0后,我无法重新创建一个情节:看起来我不能像以前那样减小点大小,这是一个有很多点的情节中的问题.在下面的例子中,plot1和plot2之间的点大小存在合理的差异,plot3中的点大小至少略小一点,但在plot3和plot4之间,点大小没有差异:

df <- data.frame(x=1:10, y=runif(10))
pl <- ggplot(df) +
    geom_point(aes(x,y), size=1)
ggsave("plot1.png", plot=pl, width=14, height=7, units="cm", dpi=1200 )

pl <- ggplot(df) +
    geom_point(aes(x,y), size=0.1)
ggsave("plot2.png", plot=pl, width=14, height=7, units="cm", dpi=1200 )

pl <- ggplot(df) +
geom_point(aes(x,y), size=0.01)
ggsave("plot3.png", plot=pl, width=14, height=7, units="cm", dpi=1200 )

pl <- ggplot(df) +
geom_point(aes(x,y), size=0.001)
ggsave("plot4.png", plot=pl, width=14, height=7, units="cm", dpi=1200 )
Run Code Online (Sandbox Code Playgroud)

在之前版本的ggplot2中,我使用了0.25的点大小,它看起来比现在小,这就是我尝试使用新的ggplot2版本进一步减少它的原因.我是否错过了新版本代码的更改?在文档中找不到任何内容......

r ggplot2

22
推荐指数
2
解决办法
4万
查看次数

使用scale_fill_gradientn()将色阶转换为概率转换的颜色分布

我正在尝试可视化重尾栅格数据,并且我想要颜色到值范围的非线性映射。有几个类似的问题,但它们并没有真正解决我的具体问题(请参阅下面的链接)。

library(ggplot2)
library(scales)

set.seed(42)
dat <- data.frame(
   x = floor(runif(10000, min=1, max=100)),
   y = floor(runif(10000, min=2, max=1000)),
   z = rlnorm(10000, 1, 1) )

# colors for the colour scale:   
col.pal <- colorRampPalette(c("#00007F", "blue", "#007FFF", "cyan", "#7FFF7F", "yellow", "#FF7F00", "red", "#7F0000"))
fill.colors <- col.pal(64)
Run Code Online (Sandbox Code Playgroud)

如果不以某种方式进行转换,数据将如下所示:

ggplot(dat, aes(x = x, y = y, fill = z)) +
   geom_tile(width=2, height=30) +
   scale_fill_gradientn(colours=fill.colors) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述我的问题是与这个这个 相关的后续问题 ,这里给出的解决方案实际上产生了我想要的图,除了图例:

qn <- rescale(quantile(dat$z, probs=seq(0, 1, length.out=length(fill.colors))))
ggplot(dat, aes(x = x, y = y, fill …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

5
推荐指数
1
解决办法
2298
查看次数

更改 geom_spoke 中箭头的方向

有没有办法geom_spoke()让箭头指向给定数据的方向?如果我有带有位置 (x,y) 和角度的数据,那么使用 似乎是理想的选择geom_spoke,但我希望能够选择箭头应指向的方向(远离坐标或指向它们;我想要后者)。

在此示例中,我添加了geom_point()内容以说明我的数据的位置;半径是随机选择的,所以我想要箭头现在所在的位置(当然,而不是点):

set.seed(1)
df       <- expand.grid(x = 1:10, y=1:10)
df$angle <- runif(100, 0, 2*pi)

ggplot(df, aes(x, y)) +
  geom_point()        +
  coord_equal()       +
  geom_spoke(aes(angle = angle), radius = 0.7, arrow=arrow(length = unit(0.2,"cm")))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

3
推荐指数
1
解决办法
2360
查看次数

标签 统计

ggplot2 ×3

r ×3