我想用两个expression()语句写一个轴标签.但是,plotmath并且expression不允许这样(例如,下标文本出现在最右侧).我在大约2005年发现了类似问题的讨论,但他们提供的工作并没有转化为我在ggplot2中的应用程序.最近的一个问题解决了多行表达式语句的不同排列,但是这里提供的工作再次不适用于此.
例:
p <- ggplot(mtcars,aes(x=wt,y=mpg))+
geom_point()+
xlab(expression(paste("A long string of text goes here just for the purpose \n of illustrating my point Weight "[reported])))
try(ggsave(plot=p,filename=<some file>,height=4,width=6))
Run Code Online (Sandbox Code Playgroud)
产生一个图像,其中下标"报告"在我希望它位于前一个单词旁边时向右踢出.

我正在寻找一种方法来拉伸两个值之间的颜色渐变并标记图例,而不管数据集中的数据值范围如何.基本上,是否有功能等同ylim() 于颜色渐变?
给定通常在-1和1之间绘制az值的代码,如果中断在数据范围内,我可以绘制并标记渐变:
library(ggplot2)
#generator from http://docs.ggplot2.org/current/geom_tile.html
pp <- function (n, r = 4) {
x <- seq(-r * pi, r * pi, len = n)
df <- expand.grid(x = x, y = x)
df$r <- sqrt(df$x^2 + df$y^2)
df$z <- cos(df$r^2) * exp(-df$r / 6)
return(df)
}
t <- pp(30)
summary(t)
b <- c(-.5, 0, .5)
colors <- c('navyblue', 'darkmagenta', 'darkorange1')
p <- ggplot(data = t, aes(x = x, y = y))+
geom_tile(aes(fill = z))+
scale_fill_gradientn(colors = colors, …Run Code Online (Sandbox Code Playgroud) 如何在ggplot中绘制线条时显示图例?我整个晚上都在尝试,但都没有成功.
p <- ggplot(output, aes(lambda), legend=TRUE) +
geom_line(aes(y=train.err), colour="red", label="r") +
geom_line(aes(y=test.err), colour="blue", label="b") +
geom_line(aes(y=data.err), colour="green", label="g")
print(p)
Run Code Online (Sandbox Code Playgroud)
其中output是具有以下结构的数据帧:
'data.frame': 2101 obs. of 4 variables:
$ lambda : num 3.06e-07 3.09e-07 3.12e-07 3.15e-07 3.18e-07 ...
$ train.err: num 0.415 0.415 0.415 0.415 0.415 ...
$ test.err : num 0.373 0.373 0.373 0.373 0.373 ...
$ data.err : num 0.398 0.398 0.398 0.398 0.398 ...
Run Code Online (Sandbox Code Playgroud) 我想使用leaflet.draw来创建区域的轮廓.我设法让这个工作正常:https://www.mapbox.com/mapbox.js/example/v1.0.0/leaflet-draw/
现在我想将每个多边形的数据保存到mysql表中.我有点坚持我将如何导出数据和我应该做的格式.
如果可能的话,我希望将来将数据拉回到地图框/传单地图中,所以猜想像geojson这样的东西会很好.
年度数据的最佳PostgreSQL数据类型是什么,例如2006或1847
TEXT.SMALLINT,DATE?理想情况下,我希望能够使用第二年 - 月 - 日列(DATE格式)查询该列.
考虑以下示例,其中我们设置示例数据集,创建MultiIndex,取消堆叠数据帧,然后执行线性插值,我们逐行填充:
import pandas as pd # version 0.14.1
import numpy as np # version 1.8.1
df = pd.DataFrame({'location': ['a', 'b'] * 5,
'trees': ['oaks', 'maples'] * 5,
'year': range(2000, 2005) * 2,
'value': [np.NaN, 1, np.NaN, 3, 2, np.NaN, 5, np.NaN, np.NaN, np.NaN]})
df.set_index(['trees', 'location', 'year'], inplace=True)
df = df.unstack()
df = df.interpolate(method='linear', axis=1)
Run Code Online (Sandbox Code Playgroud)
未堆叠数据集的位置如下所示:
value
year 2000 2001 2002 2003 2004
trees location
maples b NaN 1 NaN 3 NaN
oaks a NaN 5 NaN NaN 2
Run Code Online (Sandbox Code Playgroud)
作为插值 …
我想使用ggplot2的stat_binhex()在同一个图表上同时绘制两个独立的变量,每个变量都有自己的颜色渐变使用scale_colour_gradientn().
如果我们忽略x轴单位不匹配的事实,可重复的例子是在同一图像中绘制下图,同时保持单独的填充梯度.
d <- ggplot(diamonds, aes(x=carat,y=price))+
stat_binhex(colour="white",na.rm=TRUE)+
scale_fill_gradientn(colours=c("white","blue"),name = "Frequency",na.value=NA)
try(ggsave(plot=d,filename=<some file>,height=6,width=8))
Run Code Online (Sandbox Code Playgroud)

d <- ggplot(diamonds, aes(x=depth,y=price))+
stat_binhex(colour="white",na.rm=TRUE)+
scale_fill_gradientn(colours=c("yellow","black"),name = "Frequency",na.value=NA)
try(ggsave(plot=d,filename=<some other file>,height=6,width=8))
Run Code Online (Sandbox Code Playgroud)

我发现在谷歌GGPLOT2组相关问题的一些谈话这里.
我有一个存储为主题的所有主题元素的列表,在绘图之前会引发.但是,我最近发现,当我导出到pdf并尝试在Adobe Illustrator中打开时,我收到错误"Acrobat PDF文件格式有困难".我也看过Illustrator的报道说它"操作太少了".但是,当我使用标准主题(例如theme_set(theme_gray()))时,Illustrator中没有问题.此外,无论主题如何,我都没有绘制或保存修改后的数字的问题.
也许有人可以建议a)存储和唤起大量主题设置的最佳方式,以及b)可能是我的ggplot2 - > pdf - > Illustrator困境的来源.
这是我目前的主题,我如何唤起它,以及一个示例情节.请注意,某些参数已注释掉,如果我以后需要它们,则可用作占位符.
textc <- "grey20"
gridc <- "grey20"
backc <- "white"
fontsize <- 12
new_theme <- theme_set(theme_update(
#axis.title = element_text()
axis.title.x = element_text(colour=textc,size=fontsize,angle=0,hjust=.5,vjust=.5,face="plain"),
axis.title.y = element_text(colour=textc,size=fontsize,angle=90,hjust=.5,vjust=.5,face="plain"),
#axis.text = element_text()
axis.text.x = element_text(colour=textc,size=fontsize,angle=0,hjust=.5,vjust=1.5,face="plain"),
axis.text.y = element_text(colour=textc,size=fontsize,angle=0,hjust=1,vjust=0,face="plain"),
axis.ticks = element_line(colour=gridc, size=0.5, linetype="solid"),
axis.ticks.length = unit(.25,'cm'),
axis.ticks.margin = unit(.25,'cm'),
axis.line = element_line(colour=gridc, size=NA, linetype="solid"),
#axis.line.x = element_line()
#axis.line.y = element_line()
legend.background = element_rect(colour=NA,fill=NA,size=NA,linetype="solid"), # removes title and legend
legend.margin = unit(0,"cm"),
legend.key …Run Code Online (Sandbox Code Playgroud) d2看起来很好的传奇; 因为d1,我想在白色/透明的背景上展示水平线.
df = data.frame(
Date = c("2012-11-30", "2012-12-03", "2012-12-04"),
d1 = c(9, 5, 11),
d2 = c(4, 6, 3)
)
ggplot(df, aes(Date)) +
geom_bar(aes(y = d2, color = "d2"), stat="identity", fill = "red") +
geom_line(aes(y = d1, group = 1, color = "d1")) +
scale_colour_manual("", values=c("d1" = "blue", "d2" = "red"))
Run Code Online (Sandbox Code Playgroud)

我用可视化的面板数据集geom_point,其中y = var1,x = year和color = var2.问题是有许多重叠点,即使是水平抖动也是如此.
减小点大小或设置低α值是不合需要的,因为两者都降低了第二变量的视觉影响,第二变量具有非常长的右偏斜.我希望ggplot将具有最高值的点var2放在所有其他重叠点之上.
可重复的例子:
df <- data.frame(diamonds)
ggplot(data = df,aes(x=factor(cut),y=carat,colour=price)) +
geom_point(position=position_jitter(width=.4))+
scale_colour_gradientn(colours=c("grey20","orange","orange3"))
Run Code Online (Sandbox Code Playgroud)
如何将具有最高值的点df$price放在重叠的点堆栈顶部?