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

Вопросы по статистическому пакету R. Не обязательно гео.
nickleb
Гуру
Сообщения: 947
Зарегистрирован: 22 май 2010, 20:20
Репутация: 146

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

Сообщение nickleb » 09 авг 2015, 16:37

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

gamm
Гуру
Сообщения: 3489
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 904
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 09 авг 2015, 17:16

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).

nickleb
Гуру
Сообщения: 947
Зарегистрирован: 22 май 2010, 20:20
Репутация: 146

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

Сообщение nickleb » 09 авг 2015, 18:29

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

sergsh
Активный участник
Сообщения: 205
Зарегистрирован: 20 фев 2013, 21:48
Репутация: 30

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

Сообщение sergsh » 10 авг 2015, 00:06

Можно так же сохранить таблицу в формат csv
и далее прочитать так :

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

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

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9075
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 731
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

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

Сообщение Максим Дубинин » 10 авг 2015, 00:12

а у меня нормально дружит

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

library(RODBC)
chan <- odbcConnectExcel("c:\\temp\\NDVI_landcover.xls")
d <- sqlFetch(chan, "7")[,3:17]
close(chan)
пристегивайтесь, турбулентность прямо по курсу

nickleb
Гуру
Сообщения: 947
Зарегистрирован: 22 май 2010, 20:20
Репутация: 146

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

Сообщение nickleb » 10 авг 2015, 06:24

sergsh писал(а):Можно так же сохранить таблицу в формат csv
и далее прочитать так :

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

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

nickleb
Гуру
Сообщения: 947
Зарегистрирован: 22 май 2010, 20:20
Репутация: 146

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

Сообщение nickleb » 10 авг 2015, 06:26

Максим Дубинин писал(а):а у меня нормально дружит

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

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

nickleb
Гуру
Сообщения: 947
Зарегистрирован: 22 май 2010, 20:20
Репутация: 146

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

Сообщение nickleb » 10 авг 2015, 18:08

sergsh писал(а):Можно так же сохранить таблицу в формат csv
и далее прочитать так :

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

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

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9075
Зарегистрирован: 06 окт 2003, 20:20
Статьи: 231
Проекты: 12/6
Репутация: 731
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

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

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

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

d2 = d[c("b3_lai14", "b3_lai04", "b3_fpar14")]
пристегивайтесь, турбулентность прямо по курсу

gamm
Гуру
Сообщения: 3489
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 904
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 10 авг 2015, 19:58

Максим Дубинин писал(а):

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

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

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

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

nickleb
Гуру
Сообщения: 947
Зарегистрирован: 22 май 2010, 20:20
Репутация: 146

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

Сообщение nickleb » 11 авг 2015, 11:47

Максим Дубинин писал(а):

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

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

gamm
Гуру
Сообщения: 3489
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 904
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 11 авг 2015, 13:26

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()

nickleb
Гуру
Сообщения: 947
Зарегистрирован: 22 май 2010, 20:20
Репутация: 146

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

Сообщение nickleb » 11 авг 2015, 18:06

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

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

gamm
Гуру
Сообщения: 3489
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 904
Ваше звание: программист
Откуда: Казань

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

Сообщение gamm » 11 авг 2015, 18:45

nanes(p)[ind] в качестве индекса то же, что для выбора столбцов

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

nickleb
Гуру
Сообщения: 947
Зарегистрирован: 22 май 2010, 20:20
Репутация: 146

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

Сообщение nickleb » 11 авг 2015, 19:16

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

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

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя