小编Did*_*rts的帖子

控制ggplot2图例中的'alpha'级别

在ggplot2中,如何使图例具有半透明背景.

以下代码给出了完全透明的背景(和定位控件)

plot <- plot + theme(legend.position=c(1,1),legend.justification=c(1,1),
                       legend.direction="vertical",
                       legend.box="horizontal",
                       legend.box.just = c("top"), 
                       legend.background = element_rect(fill="transparent"))
Run Code Online (Sandbox Code Playgroud)

但是如何控制阿尔法的水平,我不相信element_rect有这种能力.

r ggplot2

37
推荐指数
1
解决办法
2万
查看次数

增加ggplot2中绘图区域周围的面积

如何增加ggplot 2中绘图区域周围的区域,使我的轴标题有一些喘息空间.我知道vjust和hjust(如下所示),然而,我似乎无法在绘图区域周围创建实际空间来移动我的轴标题.

p <- ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()
p

p<- p + theme(axis.title.x = element_text(family="Times",size=20,face="bold",colour = "Black",vjust=-1,hjust=0.5)) 
p
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

plot r ggplot2

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

如何使用for循环在ggplot中添加图层

我想将数据帧的每一列绘制到ggplot2中的单独层.逐层构建绘图效果很好:

df<-data.frame(x1=c(1:5),y1=c(2.0,5.4,7.1,4.6,5.0),y2=c(0.4,9.4,2.9,5.4,1.1),y3=c(2.4,6.6,8.1,5.6,6.3))

ggplot(data=df,aes(df[,1]))+geom_line(aes(y=df[,2]))+geom_line(aes(y=df[,3]))
Run Code Online (Sandbox Code Playgroud)

有没有办法使用单个函数绘制所有可用列?

我尝试这样做但它不起作用:

    plotAllLayers<-function(df){
    p<-ggplot(data=df,aes(df[,1]))
    for(i in seq(2:ncol(df))){ 
        p<-p+geom_line(aes(y=df[,i]))
        }
        return(p)
    }

plotAllLayers(df)
Run Code Online (Sandbox Code Playgroud)

r ggplot2

15
推荐指数
2
解决办法
1万
查看次数

ggplot手动设置scale_color_gradientn

我有这样的数据框

BP        R2      LOG10
96162057 0.2118000 2.66514431
96162096 0.0124700 0.31749391
96162281 0.0008941 0.07012148
96163560 0.5011000 2.48505399
96163638 0.8702000 3.37778598
Run Code Online (Sandbox Code Playgroud)

我想在BP10上绘制BP,并用R2对点进行着色.R2是0-1的连续值.

myplot <- read.cvs("mytable.csv",head=TRUE)
attach(myplot)
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point() 
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是我想以手动选择的间隔和颜色显示R2颜色,如下所示(如果我有离散值).

ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point() + 
      scale_color_manual(breaks= c("1","0.8","0.6","0.4","0.2","0"), 
                values = c("red","yellow","green","lightblue","darkblue"))
Error: Continuous value supplied to discrete scale
Run Code Online (Sandbox Code Playgroud)

这看起来很漂亮,但我宁愿设置我自己的颜色.

ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point(shape=1) + 
               scale_colour_gradientn(colours = rainbow(10))
Run Code Online (Sandbox Code Playgroud)

那么,我怎样才能从连续值(1-0.8,0.8-0.6,0.6-0.4,0.4-0.2,0.2-0)手动选择间隔,并根据我的喜好(红色,黄色,绿色,浅色,深蓝色)进行着色?颜色之间的平滑渐变很酷,但并不重要.

gradient r colors ggplot2

13
推荐指数
2
解决办法
1万
查看次数

将ggplot标题放在图表的右上角

我正在使用theme_minimal()ggplot0.9.3中的优秀发现,它具有白色背景.我想把我的情节标题放在情节右上角的自定义位置.在下面的示例中,我知道xy值,但我想知道是否有传递方法xmaxymax值以确保文本放置在右上角.理想情况下,文本是正确的.

#example plot
p <- qplot(mpg, wt, data = mtcars, colour = cyl)
p +  annotate("text", x = 30, y = 5, label = "Custom Title")

#what I would like
p + annotate("text", y= ymax, x =xmax_or_RightJustified)
Run Code Online (Sandbox Code Playgroud)

r ggplot2

12
推荐指数
2
解决办法
1万
查看次数

在ggplot中制作带有x轴垂直标签的条形图

亲爱的,我正在试图在ggplot中制作一个条形图,但我没有得到结果.数据框是下一个:

z=data.frame(x1=read.table(textConnection("
Indicador
Total
Max.
                             Min.
                             Mean
                             Promedio.Aparatos
                             Promedio.Automotriz
                             Promedio.Belleza
                             Promedio.C.Internet
                             Promedio.Comp
                             Promedio.Deportes
                             Promedio.Educación
                             Promedio.Entretenimiento
                             Promedio.Gasolina
                             Promedio.C.Comerciales
                             Promedio.ATMs
                             Promedio.Hogar
                             Promedio.Libros.y.Música
                             Promedio.Moda
                             Promedio.Pagos.e.Impuestos
                             Promedio.Salud
                             Promedio.Servicios.Varios
                             Promedio.Supermercados
                             Promedio.Telefonia
                             Promedio.Viajes
                             Porcentaje.Aparatos
                             Porcentaje.Automotriz
                             PorcentajeBelleza
                             PorcentajeCompras.en.Internet
                             PorcentajeComputación
                             PorcentajeDeportes
                             PorcentajeEducación
                             PorcentajeEntretenimiento
                             PorcentajeGasolina
                             PorcentajeCentros.Comerciales
                             PorcentajeATMs
                             PorcentajeHogar
                             PorcentajeLibros.y.Música
                             PorcentajeModa
                             PorcentajePagos.e.Impuestos
                             PorcentajeSalud
                             PorcentajeServicios.Varios
                             PorcentajeSupermercados
                             PorcentajeTelefonia
                             PorcentajeViajes
                             "),header=T),
x2=read.table(textConnection("
Número
36001
35916
                             12320
                             35889
                             4487
                             2751
                             673
                             1023
                             1062
                             4602
                             824
                             4438
                             4021
                             2577
                             31845
                             5443
                             641
                             6982
                             32868
                             4696
                             1594
                             9746
                             6239
                             13170
                             3973
                             2526
                             540
                             834
                             964
                             4291 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

10
推荐指数
1
解决办法
4万
查看次数

如何在不指定x轴的情况下绘制箱线图?

基本图形可以使用简单的命令很好地绘制箱线图

data(mtcars)
boxplot(mtcars$mpg)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

qplot需要y轴.我如何实现与qplot相同的基本图形boxplot并没有得到这个错误?

qplot(mtcars$mpg,geom='boxplot')
Error: stat_boxplot requires the following missing aesthetics: y
Run Code Online (Sandbox Code Playgroud)

r ggplot2

9
推荐指数
1
解决办法
9696
查看次数

ggplot多个分组栏

我想知道如何获得9个分组条形图(3x3)togheter.

我的CSV: data <- read.csv("http://pastebin.com/raw.php?i=6pArn8GL", sep = ";")

根据"类型"A到I,9个地块应该是组合.

然后,每个分组条形图应在y轴上具有频率,x轴按1 pce到6 pce分组并按年度分配.

我在Excel上有以下示例(参见图像),并希望在r上使用ggplot创建相同的结果.可能吗?

谢谢

在此输入图像描述

grouping r bar-chart ggplot2

9
推荐指数
2
解决办法
3万
查看次数

如何在ggplot中反转点大小?

请帮助我这一点.我需要将正值表示为小点,将负值表示为大点.如果我在尺寸之前减去胶带,则点尺寸正确,但图例正在改变:

df=data.frame(x=rnorm(20),y=runif(20),z=rnorm(20))
ggplot(df,aes(x=x,y=y))+geom_point(aes(size=-z))
Run Code Online (Sandbox Code Playgroud)

所以这不适合.

r ggplot2

8
推荐指数
2
解决办法
2758
查看次数

计算数据框子集内的比例

我试图在数据框的子集内获得比例.例如,在这个虚构的数据框中:

DF<-data.frame(category1=rep(c("A","B"),each=9),
    category2=rep(rep(LETTERS[24:26],each=3),2),
     animal=rep(c("dog","cat","mouse"),6),number=sample(18))
Run Code Online (Sandbox Code Playgroud)

我想category1通过category2组合计算每种动物的比例(例如,所有动物都是"A"和"X",狗的比例是多少?).在prop.table数据框的第4列,我可以得到每一行构成总"数"列的比例,但我还没有找到基于类别1和2的子集的方法.我也试过分割数据category1category2使用此:

splitDF<-split(DF,list(DF$category1,DF$category2))
Run Code Online (Sandbox Code Playgroud)

而且我希望我可以应用一个函数prop.table来获取每个分组中每个动物的比例,但是我无法prop.table工作,因为我似乎无法指定将哪个数据列应用于拆分组中.有人有任何提示吗?也许这可能与plyr类似的东西?我在帮助论坛中找不到有关如何数据子集中获得比例的方法.

r plyr

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

r ×10

ggplot2 ×9

bar-chart ×1

colors ×1

gradient ×1

grouping ×1

plot ×1

plyr ×1