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行的串联。我如何正确使用+
?它应该是上标...
编辑:
请注意,只有当"+"
是条目的最后一个(非空格)字符时(或者后跟[])时才会出现问题,否则它会正常工作(显然"+"
只应该在方程式中在那里你不会期待它,但那就是我需要它的地方)
答案 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
的使用。