使用ggplot2的NP图表

时间:2012-01-23 01:22:28

标签: r ggplot2

如何使用ggplot2生成NP图表?

我做了简单的Rscript,生成条形图,点图表。我通过csv文件提供数据。我需要指定多少列,在gplot函数中需要传递哪些参数?

我是R,ggplots的新手。

编辑This是NP图表的含义。

当前代码尝试:

#load library ggplot2 
library(ggplot2) 

#get arguments 
args <- commandArgs(TRUE) 
pdfname <- args[1] 
graphtype <- args[2] 
datafile <- args[3] 

#read csv file 
tasks <- read.csv(datafile , header = T) 
#name the pdf from passed arg 1 
pdf(pdfname) 

#main magic that generates the graph 
qplot(x,y, data=tasks, geom = graphtype) 
#clean up 
dev.off()

在.csv文件中有2列x,我按Rscript cne.R 11_16.pdf "point" "data.csv"调用此脚本。


非常感谢@ mathematical.coffee这是我需要的东西 1 GT;我正在从包含以下数据的csv文件中读取数据

这是我的数据 月,率 “简”, “37.50” “二月”, “32.94” “月”, “25.00” “四月”, “33.33” “五一”, “33.08” “君”, “29.09” “七月”, “12.00” “月”, “10.00” “月”, “6.00” “十月”, “23.00” “月”, “9.00” “DEC”, “14.00”

2 - ;我想在每个绘图点上显示值。并且还显示UCL,Cl,LCL的值,并为x和y赋予不同的标签。

当我读取数据时问题与csv文件中的顺序不同。如何解决?

1 个答案:

答案 0 :(得分:2)

您将ggplot(tasks,aes(x=x,y=y))geom_linegeom_point合并,以获得由点连接的线条。

如果您还想要绘制UCL / LCL /等,则添加geom_hline(水平线)。 要向这些行添加文字,您可以使用geom_text

一个例子:

library(ggplot2)

# generate some data to use, say monthly up to a year from today.
n <- 12
tasks <- data.frame(
    x = seq(Sys.Date(),by="month",length=n),
    y = runif(n) )
CL  = median(tasks$y)       # substitue however you calculate CL here
LCL = quantile(tasks$y,.25) # substitue however you calculate LCL here
UCL = quantile(tasks$y,.75) # substitue however you calculate UCL here
limits = c(UCL,CL,LCL)
lbls   = c('UCL','CL','LCL')

p <- ggplot(tasks,aes(x=x,y=y)) +            # store x/y values
     geom_line() +                           # add line
     geom_point(aes(colour=(y>LCL&y<UCL))) + # add points, colour if outside limits
     opts(legend.position='none',            # remove legend for colours
          axis.text.x=theme_text(angle=90))  # rotate x axis labels

# Now add in the limits.
# horizontal lines + dashed for upper/lower and solid for the CL
p <- p + geom_hline(aes(yintercept=limits,linetype=lbls)) +            # draw lines
    geom_text(aes(y=limits,x=tasks$x[n],label=lbls,vjust=-0.2,cex=.8)) # draw text

# display
print(p)

给出:

an np-plot