通过列索引更简单的ggplot方法

时间:2017-06-21 02:20:00

标签: r ggplot2

ggplot是否有一种更简单的方法可以通过索引绘制列,如下面的函数所示?

plotYofX <- function(dt,x,y) {
    dt[,  lapply(.SD, function(x) {as.numeric(x)}), .SDcols = c(x,y)]
    ggplot(dt) + geom_step(aes(x=get(names(dt)[x]), y=get(names(dt)[y]))) + labs(x=names(dt)[x], y=names(dt)[y]) 

每次get(names(dt)[x]键入,然后使用labs更正轴名称(例如,而不仅仅是写aes(x,y))对于像ggplot2这样的智能包似乎相当复杂。 ..

此ggplot示例来自此处的讨论:Don't want original data.table to be modified when passed to a function

1 个答案:

答案 0 :(得分:0)

感谢Marius在上面的评论:

需要使用1 2 3 render() { const { id,heading,body,status,user} = this.props const {det} = this.state console.log(val); return ( <a href='/details' style={{ color: 'green' }} onClick={this.sendValue.bind(this)}> <div className="member" style={this.style}> <h1>{id}</h1> <h3>Reported by: {user}</h3> <h3>{heading}</h3> <h5>{body}</h5> <h5>The current status is: {status}</h5> </div></a> ) } ,它允许您将字符串传递给aes_string()而不是不带引号的列名。如果x和y是索引,那么它就像aes()