我试图创建一个圆形的情节,我陷入了困境:
dat1 <- data.frame (xvar = 1:10, y = 6, ymin = 4, ymax = 4.5)
Run Code Online (Sandbox Code Playgroud)
使用这些数据,我可以在ggplot2中生成一个圆形带状图
require(ggplot2)
ggplot(dat1, aes(x=xvar, y=y)) + geom_ribbon(aes(ymin=ymin, ymax=ymax),
col = "blue", fill = "blue2") + ylim (c(0,6)) + coord_polar()
Run Code Online (Sandbox Code Playgroud)

但是我想要更多.
我想使用以下数据用不同的颜色和标签填充功能区的片段.
filld <- data.frame (start = c(1, 4, 6, 7.5, 8, 9), end = c(4, 6, 7.5, 8, 9, 10),
label = c("A", "B", "C", "A", "C", "D"))
filld
## start end label
## 1 1.0 4.0 A
## 2 4.0 6.0 B
## …Run Code Online (Sandbox Code Playgroud) 我试图创建如下的情节(很多次我最终用手绘制这样的情节,但这次我想自己绘制).

这是我的数据和我的试用版:
myd <- data.frame (period = c("Triassic", "Jurasic",
"Cretaceous", "Cenzoic"), myears = c(245, 208, 145, 65),
label = c(226, 176,105, 32 ))
myd2 <- data.frame (event = c("Diansaurs_strt", "Birds",
"Diansaurs_ext", "Human"), myears = c(235, 200, 60, 0.5))
myd2$x <- -0.25
with (myd2, plot(x,myears,ylim=c(0,250),
xlim = c(0, 10), axes=F,xlab="",ylab="",type="p",pch=17))
with (myd2,text(x,myears,event,pos=4,xpd=T))
axis(side=2,at = myd$label, labels = myd$period)
Run Code Online (Sandbox Code Playgroud)

我有问题特别匹配轴与文本和点的绘图和方向.任何其他想法或改进帮助赞赏.
我想(有建议这样做)创建具有不同外观的boxplot并为其添加标签.预期(未完成)输出将如下所示(每个框具有多种标签)和样本大小.

boxplot(len~supp*dose, data=ToothGrowth, notch=TRUE,
col=(c("gold","darkgreen")),
main="Tooth Growth", xlab="Suppliment and Dose", names = supp )
# some unsuccessful trials
# to add names
boxplot(len~supp*dose, data=ToothGrowth, notch=TRUE,
col=(c("gold","darkgreen")),
main="Tooth Growth", xlab="Suppliment and Dose", names = supp*dose)
# to remove the plot outline
boxplot(len~supp*dose, data=ToothGrowth, notch=TRUE,
col=(c("gold","darkgreen")),
main="Tooth Growth", xlab="Suppliment and Dose", bty="n")
Run Code Online (Sandbox Code Playgroud) 我有如下列.每列有两对,每对后缀为"a"和"b" - 例如col1a,col1b,colNa,colNb等,直到文件末尾(> 50000).
mydataf <- data.frame (Ind = 1:5, col1a = sample (c(1:3), 5, replace = T),
col1b = sample (c(1:3), 5, replace = T), colNa = sample (c(1:3), 5, replace = T),
colNb = sample (c(1:3),5, replace = T),
K_a = sample (c("A", "B"),5, replace = T),
K_b = sample (c("A", "B"),5, replace = T))
mydataf
Ind col1a col1b colNa colNb K_a K_b
1 1 1 1 2 3 B A
2 2 1 3 2 2 B …Run Code Online (Sandbox Code Playgroud) 这是我的小例子:...........
Mark <- paste ("SN", 1:400, sep = "")
highway <- rep(1:4, each = 100)
set.seed (1234)
MAF <- rnorm (400, 0.3, 0.1)
PPC <- abs (ceiling( rnorm (400, 5, 5)))
set.seed (1234)
Position <- round(c(cumsum (rnorm (100, 5, 3)),
cumsum (rnorm (100, 10, 3)), cumsum (rnorm (100, 8, 3)),
cumsum (rnorm (100, 6, 3))), 1)
mydf <- data.frame (Mark, highway, Position, MAF, PPC)
Run Code Online (Sandbox Code Playgroud)
我想过滤PPC的数据小于10,同时大于0.3的MAF.
# filter PPC < 10 & MAF > 0.3
filtered <- mydf[mydf$PPC < 10 & …Run Code Online (Sandbox Code Playgroud) 我有以下问题,我可以解决:
set.seed (1234)
mydf <- data.frame (var1a = sample (c("TA", "AA", "TT"), 5, replace = TRUE),
varb2 = sample (c("GA", "AA", "GG"), 5, replace = TRUE),
varAB = sample (c("AC", "AA", "CC"), 5, replace = TRUE)
)
mydf
var1a varb2 varAB
1 TA AA CC
2 AA GA AA
3 AA GA AC
4 AA AA CC
5 TT AA AC
Run Code Online (Sandbox Code Playgroud)
我想将两个字母分成不同的列,然后按字母顺序排序.
编辑:可以在拆分之前完成排序,例如var1a值"TA"var1a应为"AT"或拆分后,var1aa应为"A",var1ab为"T"(而不是"T","A" ).所以排序在每个单元格内.
split_col <- function(.col, data){
.x <- colsplit( data[[.col]], names = paste0(.col, letters[1:2]))
}
Run Code Online (Sandbox Code Playgroud)
拆分每列并合并
require(reshape)
splitdf …Run Code Online (Sandbox Code Playgroud) 这是我想要开发的图表:

我有行和列坐标变量,还有三个定量变量(rectheat =填充矩形热图,circleize =圆的大小,circlefill =填充颜色热图).NA应该缺少由不同颜色表示(例如灰色).
以下是数据:
set.seed (1234)
rectheat = sample(c(rnorm (10, 5,1), NA, NA), 7*14, replace = T)
dataf <- data.frame (rowv = rep (1:7, 14), columnv = rep(1:14, each = 7),
rectheat, circlesize = rectheat*1.5,
circlefill = rectheat*10 )
dataf
Run Code Online (Sandbox Code Playgroud)
这是我工作的代码:
require(ggplot2)
ggplot(dataf, aes(y = factor(rowv),x = factor(columnv))) +
geom_rect(aes(colour = rectheat)) +
geom_point(aes(colour = circlefill, size =circlesize)) + theme_bw()
Run Code Online (Sandbox Code Playgroud)
我不确定geom_rect是否合适,其他部分没问题,因为除了错误之外我无法得到任何结果.
我有一个巨大的相关矩阵,但以下只是一个例子:
set.seed(1234)
corrmat <- matrix(round (rnorm (36, 0, 0.3),2), ncol=6)
rownames (corrmat) <- colnames (corrmat) <- c("A", "b1", "b2", "C", "L", "ctt")
diag(corrmat) <- NA
corrmat[upper.tri (corrmat)] <- NA
A b1 b2 C L ctt
A NA NA NA NA NA NA
b1 0.08 NA NA NA NA NA
b2 0.33 -0.17 NA NA NA NA
C -0.70 -0.27 -0.03 NA NA NA
L 0.13 -0.14 -0.15 -0.13 NA NA
ctt 0.15 -0.30 -0.27 0.14 -0.28 NA
> melt(corrmat)
X1 …Run Code Online (Sandbox Code Playgroud) 这是我的示例数据:
set.seed(1234)
myd <- data.frame (SN = 1:100, myv = round (rnorm(100, 5, 5), 2))
boxplot(myd$myv, col = "lightgreen")
Run Code Online (Sandbox Code Playgroud)
我想突出显示在4.5到8.2之间的置信区间内的箱线图部分.另外,我想显示不在置信区间(> 8.2且小于4.5)的数据点.输出如下:
我只需要实现这个目标.欢迎ggplot2或其他包解决方案.