我正在使用R中import { Component, OnInit } from '@angular/core';
...
import { AngularFireAuth } from 'angularfire2/auth';
...
@Component({...})
export class UserDetailsComponent implements OnInit {
constructor(...public afAuth: AngularFireAuth,...) { }
ngOnInit() {
this.afAuth.authState.subscribe(user => {
if(user) {
console.log('User Details: ', user);
} else {
console.log('No user logged in as of now');
}
})
}
...
}
中的geom_label
来绘制一些文本,但是我不知道如何根据变量来改变文本的大小。请注意,“大小”不是指文本的宽度,而是其长度。考虑以下虚拟数据及其生成的数字:
ggplot
在上面的图中,我能够绘制位于x.cord(即x坐标)上的文本,但我也希望文本的长度等于duration变量。
如果我按如下方式使用size参数:
x.cord <- c(4,5,1,6)
duration <- c(0.4, 0.7, 0.2, 0.3)
text <- c("know", "boy", "man", "gift")
df <- data.frame(cbind(x.cord, duration, text))
p <- ggplot(df, aes(x.cord, rownames(df), label = text))
p + geom_label(aes(fill=text))
我能够根据持续时间变量来控制文本的“宽度”,如上图所示,但是我似乎找不到任何可以帮助我控制文本框“长度”的参数。有什么建议我该怎么做?
答案 0 :(得分:4)
这不是最优雅的解决方案,但是我不确定100%会追随您。我认为这也是EcologyTom的想法。也许是这样的吗?
x.cord <- c(4,5,1,6)
duration <- c(0.4, 0.7, 0.2, 0.3)
text <- c("know", "boy", "man", "gift")
df <- data.frame(cbind(as.numeric(x.cord), as.numeric(duration), text))
p = ggplot(df, aes(x.cord, as.numeric(rownames(df)), label = text)) +
geom_tile(aes(x = x.cord, y = as.numeric(rownames(df)), width = duration, height = 0.1, fill = text)) +
geom_text()
p