我想为spplot()上的区域添加名称标签.
例:
load(url('http://gadm.org/data/rda/FRA_adm0.RData'))
FR <- gadm
FR <- spChFIDs(FR, paste("FR", rownames(FR), sep = "_"))
load(url('http://gadm.org/data/rda/CHE_adm0.RData'))
SW <- gadm
SW <- spChFIDs(SW, paste("SW", rownames(SW), sep = "_"))
load(url('http://gadm.org/data/rda/DEU_adm0.RData'))
GE <- gadm
GE <- spChFIDs(GE, paste("GE", rownames(GE), sep = "_"))
df <- rbind(FR, SW, GE)
## working
plot(df)
text(getSpPPolygonsLabptSlots(df), labels = c("FR", "SW", "GE"))
## not working
spplot(df[1-2,])
text((getSpPPolygonsLabptSlots(df), labels = c("FR", "SW"))
Run Code Online (Sandbox Code Playgroud)
第二个可能因为格子而无法工作!?但是,我需要spplot功能.我如何获得情节上的标签?
我有如下的大数据,但这只是一点点样本.
pos <- c(1, 3, 5, 8, 10, 12)
start <- c(1,3, 6, 7, 10, 11)
end <- c(5, 6, 9, 9, 13, 12)
Run Code Online (Sandbox Code Playgroud)
Qunatative变量Pos将是Y轴,X轴将是anthor X变量(定量).每个Pos值的水平条长度由起点和终点定义.例如,1的行将从1开始,在x轴的3处结束.
以下是所需图形输出的粗略草图.

好的,我一直在寻找一个功能,可以帮助我改变xyplot中回归线的大小.我试过panel.abline(reg = coef, size = 2)但它不起作用.
听到我的代码,
Plot.col <- brewer.pal(8,"Set1")[8][cut(Std.Change, c(-2.5,2.5), label = FALSE)]
Plot.ord <- rev(order(Std.Change))
coef <- coef(lm(Std.ModernC ~ Std.Change, data = Std.DataReg))
xyplot(Std.ModernC ~ Std.Change, data = Std.DataReg[Plot.ord, ], type = c("p", "g"), col = "blue",pch = 21, fill = Plot.col[Plot.ord], cex = 1.3,panel = function(...) {
panel.xyplot(...)
panel.abline(reg = coef, col = "blue")})
Run Code Online (Sandbox Code Playgroud)
在ggplot中,只需设置就可以很容易地改变回归线的大小 geom_abline(size = 2)
我还在学习格子,我不知道是否有这个功能,或者无论如何.
任何帮助深表感谢.
我试图为不同的数据集和不同的算法绘制一堆ROC区域.我有三个变量:"Scheme",它指定使用的算法,"Dataset"是正在测试算法的数据集,以及"Area_under_ROC".
我使用R中的晶格库,使用以下命令:
dotplot(Scheme~Fare_under_ROC | Dataset,data = simulationSummary,layout = c(4,6))
这就是我得到的:
Scheme与Area_under_ROC的dotplot以Dataset为条件
我想知道的是
我非常感谢任何评论或指示.非常感谢!
我有一个类似的数据,然后使用晶格生成一个boxplot:
mydata <- data.frame(Y = rnorm(3*1000),
INDFACT =rep(c("A", "B", "C"), each=1000),
CLUSFACT=factor(rep(c("M","F"), 1500)))
library(lattice)
bwplot(Y ~ INDFACT | CLUSFACT, data=mydata, layout=c(2,1))
Run Code Online (Sandbox Code Playgroud)
我的问题是我希望每个因素A,B和C都有不同的颜色.我试过这个:
bwplot(Y ~ INDFACT | CLUSFACT, data=mydata, layout=c(2,1), col=c("red","blue","green"))
Run Code Online (Sandbox Code Playgroud)
但它只是改变了点的颜色.我想要的是改变整个颜色(点,盒子和伞).
有没有办法做到这一点?
我经常使用R来绘制3d图,例如如下所示.
X=seq(-3,3,0.05)
y=c(); for(i in X) { y=c(y,rep(i,length(X))) }
x=rep(X,length(X))
z=pmin(x,y)
library(lattice)
wireframe(z~x*y, shade=TRUE, scales=list(arrows=FALSE))
Run Code Online (Sandbox Code Playgroud)
这样可以很好地生成情节

但是有更自然/有效的方法来生成x和y向量吗?我想要一个类似"产品"操作符的东西,它给了我所有可能的配对.
如何在格子xyplot中隐藏x轴(xlim?)?
通常情节将是:
hist(rnorm(10,0,2), axes=F)
Run Code Online (Sandbox Code Playgroud)
而且全球解决方案也很棒,因为我的情节很少.我正在使用gridExtra包:
grid.arrange(plot1,plot2,plot3, ncol=3)
Run Code Online (Sandbox Code Playgroud)
例如,这允许隐藏 xlab, ylab, main.
pl = list(plot1,plot2,plot3)
do.call(grid.arrange, lapply(pl, update, xlab="", ylab="", main=""))
Run Code Online (Sandbox Code Playgroud)
样本数据以防万一:
Data <- data.frame(x=rnorm(10,2,2),y=rnorm(10,3,3),z=rexp(10,2))
plot1 <- xyplot(x~y, Data, xlab="name", ylab="name", main="title")
plot2 <- xyplot(z~y, Data, xlab="name", ylab="name", main="title")
plot3 <- xyplot(z~x, Data, xlab="name", ylab="name", main="title")
Run Code Online (Sandbox Code Playgroud)
全局隐藏也可以print()在上面显示,否则所有这些都有帮助.
我希望用更粗的线条绘制框.在boxplot功能我简单地说lwd=2,但在格子bwplot我可以拉出我的头发,没有找到解决方案!
(盒子我的意思是上图中的蓝色东西)
要使用的示例代码:
require(lattice)
set.seed(123)
n <- 300
type <- sample(c("city", "river", "village"), n, replace = TRUE)
month <- sample(c("may", "june"), n, replace = TRUE)
x <- rnorm(n)
df <- data.frame(x, type, month)
bwplot(x ~ type|month, data = df, panel=function(...) {
panel.abline(h=0, col="green")
panel.bwplot(...)
})
Run Code Online (Sandbox Code Playgroud) 我有以下代码,允许通过bwplot函数的分组垂直框图lattice.可重复的例子..
data(mpg, package = "ggplot2")
bwplot( hwy~class, data = mpg, groups = year,
pch = "|", box.width = 1/3,
auto.key = list(points = FALSE, rectangles = TRUE, space = "right"),
panel = panel.superpose,
panel.groups = function(x, y, ..., group.number) {
panel.bwplot(x + (group.number-1.5)/3, y, ...)
})
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我希望箱图是水平的,所以我改变了第一行,保持其他一切相等:
bwplot( class~hwy, data = mpg, groups = year, ...
Run Code Online (Sandbox Code Playgroud)
但图表就是这样出来的
.我试过玩代码没有成功.我有两个问题:首先,我怎么能,或者是否可以让箱图不相互叠加?其次,更一般地说,如何将颜色面板设置为灰度,因此情节会以灰色或黑白色调出现?
我的数据如下:
service,rating_1,rating_2,rating_3,rating_4,rating_5
renew_patent,0,0,1,2,11
apply_benefit,21,20,121,828,1744
apply_employment_tribunal,0,0,0,0,0
Run Code Online (Sandbox Code Playgroud)
我希望R为每行打印一个直方图,列为直方图的条形.
到目前为止我有这个:
require(lattice)
data <- read.csv("test.csv", header = TRUE)
colors = c('red', 'orange', 'yellow', 'blue', 'green')
barchart(rating_1+rating_2+rating_3+rating_4+rating_5 ~ service, data=data,
auto.key=list(space='right'), scales=list(x=list(rot=45)),
ylab="Percentage of total", col=colors)
Run Code Online (Sandbox Code Playgroud)
它正在工作,但它按字母顺序打印直方图,而不是按CSV文件中指定的顺序打印.
我怎样才能改变这一点,以便条形码在CSV文件中按顺序排列renew_patent?