在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有这种能力.
如何增加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)

我想将数据帧的每一列绘制到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) 我有这样的数据框
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)手动选择间隔,并根据我的喜好(红色,黄色,绿色,浅色,深蓝色)进行着色?颜色之间的平滑渐变很酷,但并不重要.
我正在使用theme_minimal()ggplot0.9.3中的优秀发现,它具有白色背景.我想把我的情节标题放在情节右上角的自定义位置.在下面的示例中,我知道x和y值,但我想知道是否有传递方法xmax和ymax值以确保文本放置在右上角.理想情况下,文本是正确的.
#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) 亲爱的,我正在试图在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) 基本图形可以使用简单的命令很好地绘制箱线图
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) 我想知道如何获得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创建相同的结果.可能吗?
谢谢
请帮助我这一点.我需要将正值表示为小点,将负值表示为大点.如果我在尺寸之前减去胶带,则点尺寸正确,但图例正在改变:
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)
所以这不适合.
我试图在数据框的子集内获得比例.例如,在这个虚构的数据框中:
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的子集的方法.我也试过分割数据category1并category2使用此:
splitDF<-split(DF,list(DF$category1,DF$category2))
Run Code Online (Sandbox Code Playgroud)
而且我希望我可以应用一个函数prop.table来获取每个分组中每个动物的比例,但是我无法prop.table工作,因为我似乎无法指定将哪个数据列应用于拆分组中.有人有任何提示吗?也许这可能与plyr类似的东西?我在帮助论坛中找不到有关如何在数据子集中获得比例的方法.