2012-01-23 2 views
0

Как я могу генерировать диаграмму NP, используя ggplot2?NP chart using ggplot2

Я сделал простой Rscript, который генерирует бары, диаграммы точек. Я поставляю данные csv-файлом. сколько столбцов мне нужно указать, а в функциях gplot - какие аргументы мне нужно передать?

Я очень новичок в R, ggplots.

EDIT: 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 колонки х, у я называю этот скрипт Rscript cne.R 11_16.pdf "point" "data.csv".


Спасибо вы очень много @ mathematical.coffee это то, что мне нужно, но
1> Читаю данные из CSV-файла, который содержит следующие данные

это мои данные месяц, скорость " Ян»,„37,50“ „февраль“,„32,94“ „мар“,„25,00“ „апрель“,„33,33“ „май“,„33,08“ „Июнь“,„29,09“ „июль“ , "12.00" "Aug", "10.00" "Sep", "6.00" «Октябрь», «23,00» «ноябрь», «9,00» «Декабрь», «14,00»

2> Я хочу, чтобы отобразить значение на каждой точке черчения. а также отображать значение для UCL, Cl, LCL и присваивать разные метки x и y.

Проблема, когда я читаю данные, не находится в том же порядке, что и в файле csv. как это исправить?

+1

Что вы пробовали/вы можете дать небольшой воспроизводимый пример того, что вы в настоящее время сделать, чтобы создать диаграмму? Мы не можем советовать вам, какие аргументы передавать и т. Д., Если мы даже не знаем, какую форму занимают ваши данные. –

+1

Может также помочь определить термин NP chart; Я предполагаю, что вы имеете в виду это - http://en.wikipedia.org/wiki/Np-chart. – neilfws

+0

Спасибо за ответ. @ Mathematical.coffee: Я создал скрипт, который читает csv-файл и создает бар в формате pdf. ' библиотека #load ggplot2 библиотека (ggplot2) аргументы #get арг <- commandArgs (TRUE) pdfname <- арг [1] graphtype <- арг [2] файл данных <- арг [3] # Чтение CSV файл задач <- read.csv (файл данные, заголовок = Т) #name Ф от прошедшего агда 1 PDF (pdfname) #main магии, который генерирует график qplot (х, у, data = tasks, geom = graphtype) #clean up dev.off() ' в .csv-файле есть 2 столбца x, y Я называю этот скрипт' Rscript cne.R 11_16.pdf "freqpoly" "data.csv" ' – henna

ответ

2

Вы комбинируете ggplot(tasks,aes(x=x,y=y)) с geom_line и geom_point, чтобы получить линии, соединенные точками.

Если вы дополнительно хотите, чтобы UCL/LCL/etc нарисовали, вы добавили в 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

Смежные вопросы