标签: plotmath

使用plotmath保持尾随零

我正在使用annotate()我的一个ggplot2图上覆盖文字.我正在使用该选项,parse=T因为我需要使用希腊字母rho.我想要文字说= -0.50,但是尾随的零被剪掉了,而我得到了-0.5.

这是一个例子:

library(ggplot2)
x<-rnorm(50)
y<-rnorm(50)
df<-data.frame(x,y)

ggplot(data=df,aes(x=x,y=y))+
geom_point()+
annotate(geom="text",x=1,y=1,label="rho==-0.50",parse=T)
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么能得到最后的0出现?我以为我可以这样使用paste():

annotate(geom="text",x=1,y=1,label=paste("rho==-0.5","0",sep=""),parse=T)
Run Code Online (Sandbox Code Playgroud)

但后来我得到了错误:

Error in parse(text = lab) : <text>:1:11: unexpected numeric constant
1: rho==-0.5 0
             ^
Run Code Online (Sandbox Code Playgroud)

r ggplot2 plotmath

8
推荐指数
1
解决办法
928
查看次数

将主标题分为两行

我希望有两行的情节标题,但这不起作用,为什么?我怎样才能让它发挥作用?

CVal<-1 
SumEpsVal<-2 
plot(1:10, main=bquote(paste("C=", .(CVal), " \n ", sum(xi), "=", .(SumEpsVal) )))
Run Code Online (Sandbox Code Playgroud)

这在这里工作:

plot(1:10, main=paste("C=1", "\n", "SumXi=2"))
Run Code Online (Sandbox Code Playgroud)

我猜bquote出错了...(查询?bquote)我试图改变bqoute(where-argument)中的环境,但我不知道要采取哪种环境.

BTW:

plot(1:10, main=bquote(paste("C=", .(CVal), "bla \n ", sum(xi), "=", .(SumEpsVal) )))
Run Code Online (Sandbox Code Playgroud)

用"bla"让事情变得疯狂.

r plotmath

7
推荐指数
2
解决办法
1万
查看次数

在R图的图例文本中使用子/上标和特殊字符

我为多个数据集生成了一个图.每个数据集都应该得到它自己的图例,它可能包含希腊字母,plotmath符号或sub和superscrition.我想在循环中生成图例文本.

如果只有一个图例文字,Bquote工作正常.如果我尝试添加附加的传奇文本,那么plotmath-commads会丢失,...

x <- 0:10
y1 = x * x
y2 = x * 10

plot (1,1, type="n", xlab=bquote(Omega), ylab="Y", las=1, xlim=range(x), ylim=range(y1, y2))
lines(x, y1, col=1, pch=1, type="b")
lines(x, y2, col=2, pch=2, type="b")

# generate legend texts (in a loop)
legend_texts = c(
  bquote(Omega^2)
  , bquote(Omega%*%10)
)
# Using a single bquote works fine:
#legend_texts = bquote(Omega^2)
#legend_texts = bquote(Omega%*%10)

legend(
  "topleft"
  , legend = legend_texts
  , col = c(1:2)
  , pch = c(1:2)
  , lty = 1
  )
Run Code Online (Sandbox Code Playgroud)

plot r legend special-characters plotmath

7
推荐指数
2
解决办法
8640
查看次数

带下标的Unicode字符

我想添加一个Unicode字符,它有两个字母作为我在R中的情节图例的下标.字符是带有重音符号(ř)的r,两个字母是i和j.

我已经看过这个问题:带有上标的Unicode字符,并试图调整我的问题的答案.

这是我尝试过的:

plot(1,pch=NA,ylab="",xlab="",axes=F)
legend("top",legend=paste("1-","\u{0159}"),bty ="n",bg = "white",cex=2)
legend("center",legend=paste("1-","\u{0159}","\u{0069}","\u{006A}"),bty="n",bg = "white",cex=2)
legend("bottomleft",legend=expression("1-"*"\u0159"["\u0069"*"\u006A"]),bty="n",bg = "white",cex=2)
legend("bottomright", legend = quote("1-" *"\u0159"["\u0069"*"\u006A"]),bty="n",bg = "white",cex=2)
Run Code Online (Sandbox Code Playgroud)

得到的图可以在下面找到

在此输入图像描述

Unicode字母和下标本身都可以正常工作,但不能一起工作.使用[]的任意组合的paste()确实会返回错误,但我认为这是预期的,因为粘贴无法处理[]下标.

CRAN上的FAQ网站可能会提示我使用Windows,但我不知道如何实现这个:

3.6我在R控制台上看不到带重音的字符,例如?文本.

您需要在Rconsole中指定一个支持正在使用的编码的字体(请参阅Q5.2).这曾经是Windows早期版本中的问题,但现在很难找到没有的字体.

在Rterm中对这些字符的支持取决于运行它的环境(终端窗口和shell,包括语言环境和代码页设置)以及终端窗口使用的字体.这些通常是在传统的DOS设置上,需要更改.

unicode r plotmath

7
推荐指数
1
解决办法
1090
查看次数

如何在gomplot的geom_text_repel或geom_text标签中包含斜体文本?

是否可以将部分斜体文本标签传递给ggplot?我尝试使用expressionitaliccommands(expression(paste(italic("some text")))),但这些不能传递到数据框,因为命令的结果不是原子的.设置参数fontface = "italic"也不够,因为这会使整个标签斜体化,而不仅仅是标签中的一组选定字符.例如,我想在标签中使用一些斜体字的拉丁短语(例如"体内点"中的"体内").

library(ggplot)
library(ggrepel)

df <- data.frame(V1 = c(1,2), V2 = c(2,4), V3 = c("in vivo point","another point"))

ggplot(data = df, aes(x = V1, y = V2)) + geom_point() + geom_text_repel(aes(label = V3))
Run Code Online (Sandbox Code Playgroud)

text r ggplot2 plotmath ggrepel

7
推荐指数
1
解决办法
5373
查看次数

生成的轴刻度标签中的斜体字母

我在创建结合斜体字母和变量输入的轴刻度标签时遇到问题。简单地说,我想调用变量并在每个标签下方插入诸如n = 1之类的文本。

这是一个除了斜体n之外的所有内容的示例:

require(ggplot2)

mpg$class <- as.factor(mpg$class)
counts <- rep(1:7, 1)

ggplot(mpg, aes(class, hwy)) +
  geom_boxplot() +
  scale_x_discrete(labels = paste(levels(mpg$class), "\nn = ", counts, sep = ""))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我的第一个想法是使用 Unicode 表示斜体 N,就像我过去对上标数字所做的那样。但由于某种原因,这封信太小并且在风格上与文本的其余部分不匹配。更重要的是,在我的实际用例中,斜体 n 的所有 Unicode 字符似乎都呈现不对齐,在正常和下标之间的某个位置凹陷。

ggplot(mpg, aes(class, hwy)) +
  geom_boxplot() +
  scale_x_discrete(labels = paste(levels(mpg$class), "\n\U1D45B = ", counts, sep = ""))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

所以,我发现这个plotmath函数~italic(x)可以用来将字母变成斜体。paste()然而,当我将它合并到 x 轴刻度标签的行中时,出现了明显且意外的失败。请注意,该函数确实适用于xlab()

ggplot(mpg, aes(class, hwy)) +
  geom_boxplot() + xlab(~italic("n")) +
  scale_x_discrete(labels = paste(levels(mpg$class), "\n", ~italic("n"), " = ", …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 italic plotmath

7
推荐指数
1
解决办法
1408
查看次数

plotmath表达式中的前导上标(w/ggplot2)

我想用它plotmath来创建一个包含图中前导上标的轴ggplot2.在轴标签上创建上标可以很好地工作,如下所示:

require(ggplot2)
ggplot(mtcars, aes(x=disp, y=mpg)) + 
  geom_point() +
  ylab(expression(x[y]))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,我想让我的轴标签读为"y(上标)x" - 逻辑上会是^yx,但不会解析:

Error: unexpected '^' in: "  
geom_point() + 
ylab(expression(^"
Run Code Online (Sandbox Code Playgroud)

有没有办法在声明开头强制上标?

r ggplot2 plotmath

6
推荐指数
1
解决办法
1408
查看次数

在ggplot2标题表达式中使用italic()和变量

当我做一个地图使用ggplot2,并尝试使用斜体的组合图标题的一部分expression(),并italic()使用一个字符串,我的地图出来的期望:

plottitle <- expression(paste('Example map with ', italic('italics')))

crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)
states_map <- map_data("state")
map <- ggplot(crimes, aes(map_id = state)) + 
  geom_map(aes(fill = Murder), 
           map = states_map) + 
  expand_limits(x = states_map$long, 
                y = states_map$lat) +
  labs(title = plottitle)

map
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试执行相同的操作,但使用对象而不是字符串时,该对象不会计算为所需的字符串:

word <- 'italics'
plottitle2 <- expression(paste('Example map with ', italic(word)))

map <- ggplot(crimes, aes(map_id = state)) + 
  geom_map(aes(fill = Murder), 
           map = states_map) + 
  expand_limits(x = states_map$long, 
                y = states_map$lat) + …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 plotmath

6
推荐指数
1
解决办法
3735
查看次数

R 中图例中的“ggplotly”、绘图数学表达式和双标签

ggplotly在 R 中使用函数时遇到两个问题:


问题 1使用函数将绘图转换为格式时保留R 绘图数学表达式的方法有哪些?ggplot2plotlyggplotly

现在表达式被转换为[object Object]如下例所示:

library(ggplot2)
library(plotly)

qplot(mpg, wt, data = mtcars) +
    ggtitle(expression(bar(x) == sum(frac(x[i], n), i==1, n)))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

ggplotly()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


问题2

如何摆脱图表图例中的标签plotly并使它们看起来像中ggplot2 graph?即如何6代替(6,6)

qplot(mpg, wt, data = mtcars, colour = as.factor(cyl), fill = as.factor(cyl))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

ggplotly()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2 plotmath plotly

6
推荐指数
0
解决办法
635
查看次数

使用注释向ggplot2添加粗体女性符号

我试图在我的情节中使用女性符号♀.它非常微弱(嗯,它在我的实际图形上看起来很微弱),所以我希望能让它变得大胆.

df <- data.frame(x = c(0, 1), y = c(0, 1))
ggplot(df, aes(x, y)) + geom_point() +
   theme_bw() +
   annotate("text", x = 0.5, y = 0.7, label = "2016 ?", 
   size = 7, hjust = 0, colour = "grey50")
Run Code Online (Sandbox Code Playgroud)

情节与微弱的女性符号

我尝试了以下,但似乎没有工作:

ggplot(df, aes(x, y)) + geom_point() +
   annotate("text", x = 0.5, y = 0.7, label = "2016~bold(?)", 
   size = 7, hjust = 0, parse = TRUE) 

# error message: Error in parse(text = as.character(lab)) : <text>:1:11: unexpected '<'
#1: 2016~bold(<
              ^ …
Run Code Online (Sandbox Code Playgroud)

fonts r ggplot2 plotmath

6
推荐指数
1
解决办法
2296
查看次数

标签 统计

plotmath ×10

r ×10

ggplot2 ×7

fonts ×1

ggrepel ×1

italic ×1

legend ×1

plot ×1

plotly ×1

special-characters ×1

text ×1

unicode ×1