我安装的默认主题是将值映射为粉色和青色.如何将其更改为灰度主题?
我刚刚开始使用R,并开始制作图表.我知道至少有三种不同的绘图包,标准的,ggplot2和格子.
这些包装是否具有互补性,或者它们是否覆盖相同的基础?如果它们是互补的,我什么时候使用它们?如果它们覆盖相同的地面,我应该作为一个新的R用户,将我的精力投入到掌握中?
为了弄清楚我在问什么,我创造了一个简单的例子.第一步是创建一些数据:
gender <- factor(rep(c(1, 2), c(43, 41)), levels = c(1, 2),labels = c("male", "female"))
numberofdrugs <- rpois(84, 50) + 1
geneticvalue <- rpois(84,75)
death <- rpois(42,50) + 15
y <- data.frame(death, numberofdrugs, geneticvalue, gender)
Run Code Online (Sandbox Code Playgroud)
所以这些是一些随机日期合并为一个data.frame.因此,从这些日期开始,我想绘制一个云,我可以在男性和女性之间进行区分,并在其中添加两个简单的回归(一个用于女性,一个用于男性).所以我已经开始了,但我无法达到我想要的程度.请看下面到目前为止我做了什么:
require(lattice)
cloud(y$death~y$numberofdrugs*geneticvalue)
Run Code Online (Sandbox Code Playgroud)

xmale <- subset(y, gender=="male")
xfemale <- subset(y, gender=="female")
death.lm.male <- lm(death~numberofdrugs+geneticvalue, data=xmale)
death.lm.female <- lm(death~numberofdrugs+geneticvalue, data=xfemale)
Run Code Online (Sandbox Code Playgroud)
如何在使用云命令时为男性或女性制作不同的点(例如蓝色和粉红色点而不仅仅是蓝色十字),如何将两个估计模型添加到云图中?
任何想法都表示赞赏!谢谢你的想法!
您好我使用以下代码生成使用晶格的xyplot
xyplot(Rate~Weight|Temp, groups=Week, rate,
pch=c(15,16,17,3), col=c("blue","red","green","purple"),
as.table=TRUE,
xlab="Weight (gr)", ylab="Rate (umol/L*gr)",
main="All individuals and Treatments at all times",
strip=strip.custom(strip.names=1),
key=
list(text=list(c("Week","1","2","6","8")),
points=list(pch=c(NA,15,16,17,3),col=c(NA,"blue","red","green","purple")),
space="right")
)
Run Code Online (Sandbox Code Playgroud)
这给了我以下情节:

现在更改代码后按照建议包含面板顺序:
xyplot(Rate~Weight|Temp, groups=Week, rate,
index.cond=list(c(4,1,2,3)),#this provides the order of the panels
pch=c(15,16,17,3), col=c("blue","red","green","purple"),
as.table=TRUE,
xlab="Weight (gr)", ylab="Rate (umol/L*gr)",
main="All individuals and Treatments at all times",
strip=strip.custom(strip.names=1),
key=
list(text=list(c("Week","1","2","6","8")),
points=list(pch=c(NA,15,16,17,3),col=c(NA,"blue","red","green","purple")),
space="right")
)
Run Code Online (Sandbox Code Playgroud)
我们得到了正确的订单

谢谢您的帮助
如何更改格子图条中显示的文本?例如:假设我有一个由3列组成的数据框测试
x
[1] 1 2 3 4 5 6 7 8 9 10
y
[1] "A" "A" "A" "A" "A" "B" "B" "B" "B" "B"
a
[1] -1.9952066 -1.7292978 -0.8789127 -0.1322849 -0.1046782 0.4872866
[7] 0.5199228 0.5626998 0.6392686 1.6604549
Run Code Online (Sandbox Code Playgroud)
正常调用格子图
xyplot(a~x | y,data=test)
Run Code Online (Sandbox Code Playgroud)
将在条带上给出带有文本"A"和"B"的图
如何在条带上写下不同的文字?
与另一个角色向量一起考虑
z
[1] "a" "a" "a" "a" "a" "b" "b" "b" "b" "b"
Run Code Online (Sandbox Code Playgroud)
和一个电话 strip.custom()
xyplot(a~x | y,data=test,strip=strip.custom(var.name=z))
Run Code Online (Sandbox Code Playgroud)
没有给出理想的结果.
实际上,这是一个国际化问题.
以下是我的工作示例.
require(lattice)
data(barley)
xyplot(yield ~ year | site, data = barley)
Run Code Online (Sandbox Code Playgroud)

我想为不同的sprips添加不同的条带颜色,并且字体颜色也与背景颜色不同.例如:
strip background colors = c("black", "green4", "blue", "red", "purple", "yellow")
font color = c("white", "yellow", "white", "white", "green", "red")
Run Code Online (Sandbox Code Playgroud)
提供了第一个粗略草图:
我怎样才能做到这一点?
在准备打印数据时,我经常需要使它们比屏幕上显示的要小得多.将数字降低到几厘米的范围并不罕见.使用标准图形包par(cex=...)可以缩小整个图,以适应这么小的区域,看起来仍然是成比例的.是否与格子包中的相同?
基本上,如何在右侧面板的大小中绘制下图,但保留左侧面板的比例?

这个问题时不时地发生在我身上,它通常让我疯狂地进行实验trellis.par.get,trellis.par.set然后放弃并使用标准图形重绘整个图形(这非常繁琐).在发现时,trellis.par.set(simpleTheme(cex=...))我以为自己已经打了金币,但它似乎没有做任何事情.
我想重新缩放图中的所有内容,包括字体大小,边距和刻度尺寸.很多.我知道我可以简单地调整pdf(height=..., width=...)以获得我喜欢的比例,然后在排版中重新缩放它,例如InDesign或文字处理器,但我觉得如果每个pdf都有嵌入文件中的预期尺寸,我会得到更好的控制.
有一些数据,我想添加"点画",以显示它"重要",就像他们在IPCC图中所做的那样

目前我正在努力尝试在R中这样做.
如果我编制一些测试数据并绘制它:
data <- array(runif(12*6), dim=c(12,6) )
over <- ifelse(data > 0.5, 1, 0 )
image(1:12, 1:6, data)
Run Code Online (Sandbox Code Playgroud)
我最终要做的是根据当前图像顶部的"over"数组过度绘制一些点.
有什么建议!??
我加载了格子包.然后我跑:
> xyplot(yyy ~ xxx | zzz, panel = function(x,y) { panel.lmline(x,y)}
Run Code Online (Sandbox Code Playgroud)
这会生成绘图板,显示回归线,没有xyplots.我正在做panel.lmline而没有完全理解它是如何完成的.我知道有一个数据参数,什么是数据,知道我有3个变量xxx,yyy,zzz?
有没有办法在R中绘制这样的图形并且在它上面有相同的12个轴?
这是图表的图片.

这是我的一个数据
Date1 Time TravelTime
1 2016-09-04 13:11 34
2 2016-09-04 13:12 34
3 2016-09-04 13:13 33
4 2016-09-04 13:14 33
5 2016-09-04 13:15 33
6 2016-09-04 13:16 43
7 2016-09-04 13:17 44
8 2016-09-04 13:18 44
9 2016-09-04 13:19 40
10 2016-09-04 13:20 39
Run Code Online (Sandbox Code Playgroud)
这是dput的输出
structure(list(Date1 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L), .Label = "2016-09-04", class = "factor"), Time = structure(1:10, .Label = c("13:11",
"13:12", "13:13", "13:14", "13:15", "13:16", "13:17", "13:18",
"13:19", "13:20"), …Run Code Online (Sandbox Code Playgroud)