R中多个文本标签(表)中的上标/下标

时间:2015-06-01 20:14:37

标签: r plot label chemistry

plot(x,y,type="h",...)
text(x,y,labels=columnL)

这看起来很简单:我有一个(直方图)图并使用文本函数来标记点。

在数据表中,我有包含x,y和标签名称的行(columnL,每个点都有不同的名称)。该表是通过.csv文件中的read.table导入的。

一切正常,但是:我想在标签中使用下标和上标,我找到的所有解决方案都是针对轴标签 - 这里,我有一系列不同的标签,所有这些都需要正确格式化,所以在paste()中尝试expression()text(labels=)时我没有成功(为所有点返回相同的标签)...所以,更一般地说:是否可以在这些中使用格式化选项标签?

我是 R (和编程)的新手,对不起,如果这个不清楚或者看起来很愚蠢。有可能以某种方式“批量处理”ColumnL的内容。我可以提前将格式([]和^)添加到.csv文件中(但因为它不作为表达式读取,所以输出没有格式化)。

更新编辑: 这几乎有效:

mytable <- read.table("C:/Data/Example.txt", header= T, sep= "\t")
attach(mytable)

ColL <- as.character(ColumnL)
ColN <- parse(text=ColL)

plot(x1,y1)
text(x1,y1+0.1,labels=ColN)

其中Example.txt包含:

x1  y1  ColumnL
1   2   a[1]^"+"
1   3   b[19]
2   5   c[27]
4   6   v[45]

这样做的好处是下标适用于数字(我不介意在输入文件中定义格式)。但是,我无法解决的一件事是"+",无论引号如何,都会在ColL运行parse()时触发第1行和第2行的串联。我如何正确使用+?它应该是上标...

编辑: 请注意,只有当"+"是条目的最后一个(非空格)字符时(或者后跟[])时才会出现问题,否则它会正常工作(显然"+"只应该在方程式中在那里你不会期待它,但那就是我需要它的地方)

2 个答案:

答案 0 :(得分:0)

现在我查看了这个https://stat.ethz.ch/pipermail/r-help/1999-July/004414.html,我知道当添加参数时,+-可以放在字符串的末尾。在链接的话中:

  

“ - ”运算符至少需要一个参数,但那个参数可以   空

+也是如此,因此输入表可以包含所有格式:

x1  y1  ColumnL
1   2   a[11]^{+{}}
1   3   b[19]
2   5   c[27]
4   6   v[45]

并将使用上面更新的编辑中的代码。

我认为化学家在离子电荷和总和公式的图中标记点是特别有趣的。

答案 1 :(得分:0)

使用

  

read.table(&#34; C:/Data/Example.txt" ;, header = T,sep =&#34; \ t&#34 ;, stringsAsFactors = F,quote =&#34;& #34)

允许您使用带引号的输入文件(即ResearchKit)。 a[1]^"+"将消除代码中stringsAsFactors=F的使用。