如何仅调整R中Y轴标签的大小?
我知道cex.axis会改变轴标签的大小,但它只会影响x轴.为什么,以及如何调整y轴?
我有一个具有这种基本结构的数据文件:
Type Tm
A 1
A 2
A 3
B 3
B 3
C 1
C 1
C 2
Run Code Online (Sandbox Code Playgroud)
我使用以下方法制作一个dotplot:
ggplot(data=df,aes(x = Tm,fill=Type)) +
geom_dotplot(binwidth=1,method="histodot",stackgroups=TRUE)
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是,我想知道是否可以从默认圆圈更改点的形状.例如,制作A三角形,B方格并将C保留为默认圆圈.我尝试了各种组合scale_shape但没有成功.有时我收到各种错误信息,有时没有任何反应.这导致我得出的结论是,我做错了什么,或者说它甚至不可能.哪一个?
编辑
joran从2013年2月发表的评论称尚未实施.在过去的一年半中,这个领域有没有发展?
我在R中有以下代码:
library(ggplot2)
theme_set(theme_bw())
p <- ggplot(mtcars, aes(wt, mpg))
p <- p + geom_point(aes(colour = factor(cyl)))
p
Run Code Online (Sandbox Code Playgroud)
结果如下:

每个图例条目周围都有一个灰色边框.如何删除它?
我想在格子的xyplot中为每个面板添加不同的文本.
res<- xyplot(CumSpec ~ CumTotal | Site, data=data1, index.cond=list(c(1,2,3)),layout = c(3,1,1), aspect = 1,
axis=axis.overlap, origin=0, xlab="Total number of individuals", ylab="Total number of species",
between = list(x = 0),
scales=list(tick.number = 8, cex = .9, x=list(alternating=1), x=list(rot=90)),
par.settings = my.settings,
par.strip.text=list(col="white", font=2),
panel = function(x, y) {
panel.xyplot(x, y)
panel.abline(lm(y ~ x), lwd = 0.5, lty=2)
panel.text(400, 4.6, label="R=0.334", font=1)
})
res
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用panel.text,但它将标签添加到每个面板.有谁知道怎么做到这一点,拜托?你的帮助将不胜感激.
我有这个数据框和向量,我想用以下行划分行:
div <- c(10,100,1000)
df <- as.data.frame(matrix(rep(1,9),nrow=3))
df <- cbind(type = as.factor(c("A","B","C")),df)
> df
type V1 V2 V3
1 A 1 1 1
2 B 1 1 1
3 C 1 1 1
Run Code Online (Sandbox Code Playgroud)
我希望以数据框形式给出答案,并保留原因.将它与向量分开时,我得到了"错误"的答案:
df1 <- cbind(df[,1], df[,-1]/div)
> df1
df[, 1] V1 V2 V3
1 A 0.100 0.100 0.100
2 B 0.010 0.010 0.010
3 C 0.001 0.001 0.001
Run Code Online (Sandbox Code Playgroud)
我希望每行除以向量,而不是每列.
我的解决方法是:
divfun <- function(x){
x / div
}
df2 <- cbind(df[,1], t(apply(df[,-1], 1, divfun)))
> df2
V1 V2 V3 …Run Code Online (Sandbox Code Playgroud) 我试图在R图中创建一个文本图层,其中包含从变量派生的普通文本和上标文本.
到目前为止我有这个:
first = c("one", "two", "three")
second = c(1, 2, 3)
plot(1:3, 3:1)
text(1:3, 3:1, labels=first)
Run Code Online (Sandbox Code Playgroud)
它现在的工作方式,它在情节上显示了一个,两个等.我想让它显示一个1两2,等等.
我想这应该是一些组合expression,paste,bquote也许另一个功能.我只是无法让它将数据作为向量读取并制作正确的上标.
我在这个网站上看到了一些问题,例如:
他们都没有完全回答我的问题.
我有这样的事情:
a <- c(1,4,2,8)
b <- c(100,80,40, 0)
c <- 1:4
x <- rep("foo",4)
y <- rep("bar",4)
df1 <- data.frame(c, y = a, gr = x)
df2 <- data.frame(c, y = b, gr = y)
df <- rbind(df1,df2)
xyplot(y ~ c, data = df, type = "l", group = df$gr)
Run Code Online (Sandbox Code Playgroud)
结果如下:
我正在寻找一种方法,允许我更改比例,以便蓝线填充整个面板区域,并在图的右侧添加相应的轴。
如果添加轴太难,那么就不是必需的。无论如何,y 轴上的单位是任意的(在我自己的数据中)。也许一种标准化数据的方法会起作用?
该网站上有几个答案,但它们都适用于 R 的基本图形,并且没有使用点阵。
我有这个代码:
df <- data.frame(foo = 1:5, bar = 5:1)
bla <- "some text"
write.csv(df, "foobar.csv")
Run Code Online (Sandbox Code Playgroud)
我希望最终的 foobar.csv 看起来像这样:
some text
"","foo","bar"
"1",1,5
"2",2,4
"3",3,3
"4",4,2
"5",5,1
Run Code Online (Sandbox Code Playgroud)
这是 Shiny 应用程序的一部分,我在服务器功能中有这一点:
output$dlcsv <- downloadHandler(
filename = function() {
paste0(format(Sys.time(), "%Y%M%e%H%M%S"), ".csv")
},
content = function(file) {
write.csv(datareactive(), file)
}
)
Run Code Online (Sandbox Code Playgroud)
output$dlcsv是一个下载按钮,datareactive()是我导出到以今天的日期和时间命名的 csv 的数据框。我想在数据本身之前向文本文件添加一些行。因此,上述问题的解决方案需要在这种情况下起作用。
我有这个数据文件:
A
169
164
164
102
150
100
145
B
145
107
115
120
140
Run Code Online (Sandbox Code Playgroud)
我想从中创建一个堆积直方图.我想设置一个范围(比方说100到170),为X轴设置bin宽度(比如说10),并计算每个bin中有多少(例如140到149在A中有1)和B)中的2,并使用条形图在Y轴上绘制计数.对于A计数和B计数,着色(或阴影或其他)将是不同的.我试着看看gnuplot的直方图演示,在某些情况下看起来确实相似,但我无法弄清楚如何让它工作.也没有运气python + matplotlib或R.重新排序数据类似的东西
A B
169 145
164 107
164 115
102 120
150 140
100
145
Run Code Online (Sandbox Code Playgroud)
如果需要,不是问题.
r ×9
ggplot2 ×2
lattice ×2
plot ×2
axis-labels ×1
expression ×1
gnuplot ×1
graph ×1
histogram ×1
labels ×1
legend ×1
matplotlib ×1
scale ×1
shiny ×1