Страница 1 из 3

Графики по мноколоночному XLS-файлу - какой package?

Добавлено: 09 авг 2015, 16:37
nickleb
Здравствуйте. Есть многоколоночный XLS-файл - одна и та же характеристика по различным районам (первый столбец год - ось - X, каждый следующий из множества столбов - ордината для каждого отдельного района) . С помощью какого R-package'а лучше визуализировать-отскриптовать построение двумерных графиков распределения этой характеристики по различным районам в одних и тех же X,Y-осях. Каждая колонка - отдельная линия.

Re: Графики по мнокололочному XLS-файлу - какой package?

Добавлено: 09 авг 2015, 17:16
gamm
nickleb писал(а):Здравствуйте. Есть многоколоночный XLS-файл - одна и та же характеристика по различным районам (первый столбец год - ось - X, каждый следующий из множества столбов - ордината для каждого отдельного района) . С помощью какого R-package'а лучше визуализировать-отскриптовать построение двумерных графиков распределения этой характеристики по различным районам в одних и тех же X,Y-осях. Каждая колонка - отдельная линия.
1) поскольку R не сильно дружит с Ёкселем, то копипастите данные в текстовый файл

2) чтобы просто нарисовать графики, есть просто plot() + lines()/points() в цикле, нужно только правильно установить границы. Будет что-то типа

Код: Выделить всё

p<-read.table("data.txt",header=FALSE)
y.lim<-range(p[,-1])
my.colors<-rainbow(ncol(p)-1)
X<-p[,1] # в первом столбце - общая горизонтальная ось, например время
plot(X,p[,2],type="n",main="",xlab="X",ylab="",ylim=y.lim)
for(i in 2:ncol(p)) {
  points(X,p[,i],type="l",col=my.colors[i-1])
}
legend("topright",as.character(2:ncol(p)),fill=my.colors)
3) если нужно много графиков на одной картинке (каждый - на своей панельке), то используем пакет lattice, там много разных чудес, но мне ближе вариант (2).

Re: Графики по мнокололочному XLS-файлу - какой package?

Добавлено: 09 авг 2015, 18:29
nickleb
gamm писал(а):[ ...мне ближе вариант (2).
gamm, спасибо за, как всегда, своевременную и дельную помощь...

Re: Графики по мноколочному XLS-файлу - какой package?

Добавлено: 10 авг 2015, 00:06
sergsh
Можно так же сохранить таблицу в формат csv
и далее прочитать так :

df = read.table("myfile.csv", header = TRUE) # header = TRUE - если у вас в таблице есть заголовок каждого столбца

а далее пункт 2)

Re: Графики по мноколочному XLS-файлу - какой package?

Добавлено: 10 авг 2015, 00:12
Максим Дубинин
а у меня нормально дружит

Код: Выделить всё

library(RODBC)
chan <- odbcConnectExcel("c:\\temp\\NDVI_landcover.xls")
d <- sqlFetch(chan, "7")[,3:17]
close(chan)

Re: Графики по мноколочному XLS-файлу - какой package?

Добавлено: 10 авг 2015, 06:24
nickleb
sergsh писал(а):Можно так же сохранить таблицу в формат csv
и далее прочитать так :

df = read.table("myfile.csv", header = TRUE) # header = TRUE - если у вас в таблице есть заголовок каждого столбца

а далее пункт 2)
спасибо, sergsh!

Re: Графики по мноколочному XLS-файлу - какой package?

Добавлено: 10 авг 2015, 06:26
nickleb
Максим Дубинин писал(а):а у меня нормально дружит

Код: Выделить всё

library(RODBC)
chan <- odbcConnectExcel("c:\\temp\\NDVI_landcover.xls")
d <- sqlFetch(chan, "7")[,3:17]
close(chan)
Максим, благодарю!

Re: Графики по мноколочному XLS-файлу - какой package?

Добавлено: 10 авг 2015, 18:08
nickleb
sergsh писал(а):Можно так же сохранить таблицу в формат csv
и далее прочитать так :

df = read.table("myfile.csv", header = TRUE) # header = TRUE - если у вас в таблице есть заголовок каждого столбца

а далее пункт 2)
не подскажете ли как выбрать из csv-файла (в R) именованные колонки по маске имени?

Re: Графики по мноколочному XLS-файлу - какой package?

Добавлено: 10 авг 2015, 19:08
Максим Дубинин

Код: Выделить всё

d2 = d[c("b3_lai14", "b3_lai04", "b3_fpar14")]

Re: Графики по мноколочному XLS-файлу - какой package?

Добавлено: 10 авг 2015, 19:58
gamm
Максим Дубинин писал(а):

Код: Выделить всё

d2 = d[c("b3_lai14", "b3_lai04", "b3_fpar14")]
запятой не хватает для понятности

Код: Выделить всё

d2 = d[ , c("b3_lai14", "b3_lai04", "b3_fpar14")]
хотя с data.frame() и без нее работает

Re: Графики по мноколочному XLS-файлу - какой package?

Добавлено: 11 авг 2015, 11:47
nickleb
Максим Дубинин писал(а):

Код: Выделить всё

d2 = d[c("b3_lai14", "b3_lai04", "b3_fpar14")]
а как выбрать-таки колонки по МАСКЕ имени? все колонки, в имени которых присутствует, к примеру, слово "b3_"?

Re: Графики по мноколочному XLS-файлу - какой package?

Добавлено: 11 авг 2015, 13:26
gamm
nickleb писал(а):а как выбрать-таки колонки по МАСКЕ имени? все колонки, в имени которых присутствует, к примеру, слово "b3_"?

Код: Выделить всё

p<-data.frame(b3_1=1,b1_1=2,b3_2=3,b0=4,b3_2=5)
p[,grep("b3_*",names(p))]
  b3_1 b3_2 b3_2.1
1    1    3      5
курим мануал от grep()

Re: Графики по мнокололочному XLS-файлу - какой package?

Добавлено: 11 авг 2015, 18:06
nickleb

Код: Выделить всё

legend("topright",as.character(2:ncol(p)),fill=my.colors)
gamm, а именами колонок в легенде подписать как? подскажите, пожалуйста... что-то с ходу не получилось...

Re: Графики по мноколочному XLS-файлу - какой package?

Добавлено: 11 авг 2015, 18:45
gamm
nanes(p)[ind] в качестве индекса то же, что для выбора столбцов

[ Сообщение с мобильного устройства ]

Re: Графики по мноколочному XLS-файлу - какой package?

Добавлено: 11 авг 2015, 19:16
nickleb
gamm писал(а):nanes(p)[ind] в качестве индекса то же, что для выбора столбцов

[ Сообщение с мобильного устройства ]
ага, спасибо!