kouprianov: (Default)
[personal profile] kouprianov
ru.20111204.ER~turn.1200

Наконец научился рисовать плотности цветами на диаграмме рассеяния. Не самый лучший вариант. Пока не могу (1) управлять цветом, (2) рисовать не две картинки, а одну (для этого, я так полагаю, надо применять что-то иное, а не ipairs, за который я схватился с горя, потому что он показался мне интуитивно-понятнее прочих). Попутно внезапно научился менять по желанию размер картинки и узнал, что такое data.frame. Как часто бывает, спасибо [livejournal.com profile] ishc за помощь в блужданиях в лабиринте апгрейда. Заранее благодарен тем, кто посоветует мне что-нибудь умное про рисование диаграмм рассеяния с плотностями и управление параметрами этих непослушных графиков. Хочется, чтобы было так же красиво, как у [livejournal.com profile] kobak, но пока не можется. На самом деле, хотел написать не об этом, но о том -- в следующей, отдельной записи.

UPD: код был такой:

library(IDPmisc)
ru.uik <- read.table('/home/**PATH**/ru.20111204.95228.txt', h=T)
attach(ru.uik)
turnout <- (invalid+valid)/electorate
ER.vote <- ER/(invalid+valid)
ergraph <- data.frame(turnout,ER.vote)
png(file="/home/**PATH**/ru.20111204.ER~turn.png", width=600, height=600)
ipairs(ergraph, pixs=1, zmax=NULL)
dev.off()

Date: 2012-04-11 09:06 am (UTC)
From: [identity profile] bolotoved.livejournal.com
А вы код выкладывайте, в R для категоризованных графиков и разложенных по категориям графиков (как в вашем случае) для многих пакетов применяется один и тот же прием.

Date: 2012-04-11 09:22 am (UTC)
From: [identity profile] kouprianov.livejournal.com
Код такой был:
ru.uik <- read.table('/home/**PATH**/ru.20111204.95228.txt', h=T)
attach(ru.uik)
turnout <- (invalid+valid)/electorate
ER.vote <- ER/(invalid+valid)
ergraph <- data.frame(turnout,ER.vote)
png(file="/home/**PATH**/ru.20111204.ER~turn.png", width=600, height=600)
ipairs(ergraph, pixs=1, zmax=NULL)
dev.off()

У меня основная проблема в том, что я какие-то совсем простые вещи про эти графики и подготовку к ним не понимаю. Например, почему бы не использовать image? Но в image требуется каким-то образом предварительно посчитать z, а как его считать -- про то мне не ведомо. ipairs как-то считает z сам, но рисует только такие матрицы из картинок (потому что он ради того и задуман).

Date: 2012-04-11 10:37 am (UTC)
From: [identity profile] bolotoved.livejournal.com
А что если использовать пакет IDPmisc:


library(IDPmisc)


x <- (invalid+valid)/electorate
y <- ER/(invalid+valid)
png(file="/home/**PATH**/ru.20111204.ER~turn.png", width=600, height=600)
plot(x, y, type="n")
Image(x, y, pix=1, zmax = NULL)
dev.off()


zmax при этом - это количество точек на ячейку матрицы плотностей: чем оно больше, тем плавнее переход от голубого к красному.

Date: 2012-04-11 10:41 am (UTC)
From: [identity profile] kouprianov.livejournal.com
Блин, я идиот. То есть, я просто забыл вписать library(IDPmisc) в цитату из кода (потому что собирал его по кускам среди разных пробок и ошибок). ipairs как раз оттуда. Я просто совершенно не понимал, откуда image берет z. Сейчас попробую.

Date: 2012-04-11 10:54 am (UTC)
From: [identity profile] bolotoved.livejournal.com
Функция library() используется только для запуска библиотеки, если она еще не запущена.
Для построения графика тут используется функция Image пакета IDPmisc (не путать с функцией image встроенной в ядро R, последняя с маленькой буквы)

Date: 2012-04-11 11:04 am (UTC)
From: [identity profile] kouprianov.livejournal.com
Про library -- это я понял, а вот с I/image -- протормозил. Возможно, потому что нашел IDPmisc через ipairs и не дочитал список функций до конца внимательно.

Попробовал с Image -- все получилось. А как управлять цветовой гаммой? Где-то про это можно прочесть?

Date: 2012-04-11 12:19 pm (UTC)
From: [identity profile] bolotoved.livejournal.com
Помощь по всякой функции можно получить набрав ?название функции:
?Image


Что-то я с ходу не понял как там выбирать цветовую палитру. За это отвечает параметр colramp, но у меня не вышло его примениь. Можно задатьфункцию плавности перехода цветов с помощью параметра ztransf. Например:


x <- rnorm(10000, mean=10)
y <- rnorm(10000, mean=10)
plot(x, y, type="n")
Image(x, y, pix=1, zmax = NULL, ztransf = function(x){x[x<1] <- 1; log2(x)})




Date: 2012-04-11 12:49 pm (UTC)
From: [identity profile] kouprianov.livejournal.com
Чтение help'a требует знания жаргона разработчиков. Ну, читаю я хелпы в интернетах. И что толку в том, если я не понимаю пока этих полунамеков? У меня ipairs заработал случайно, когда я выбросил почти все параметры, относительно которых я совсем не понимал, что делать, а zmax=NULL просто оставил, как было в хелпе, а что сие значит в точности -- не ведаю.

Да, у меня colramp тоже не пошел. Надо, пожалуй, освоить ztransf.

Date: 2012-04-11 12:59 pm (UTC)
From: [identity profile] bolotoved.livejournal.com
zmax - количество точек на пиксел матрицы. Попробуйте поменять zmax=30, например. Чем больше, тем более сглаженная картинка выходит (цветовой перепад уменьшается).

Date: 2012-04-11 01:09 pm (UTC)
From: [identity profile] kouprianov.livejournal.com
Не, там как-то с этим гнило... До 450 оно ничего не рисует, а от 450 ввсе становится так же, как и при NULL, или хуже. До всех этих оранжево-красных красот на темно-синем изрядно не дотягивает. Пойду-ка я погуляю на радостях.
Edited Date: 2012-04-11 01:10 pm (UTC)

Date: 2012-04-11 10:03 pm (UTC)
From: [identity profile] kouprianov.livejournal.com
О, наваял: http://kouprianov.livejournal.com/205631.html

Чуть не облысел, пока понял, что bg, в отличие от остальных цветовых параметров, работает только в par().

Date: 2012-04-11 10:51 am (UTC)
From: [identity profile] kouprianov.livejournal.com
Не получилось:
> image(x,y,pix=1,zmax=NULL)
Ошибка в image.default(x, y, pix = 1, zmax = NULL) : 
  аргумент должен быть матрицеподобен

March 2025

S M T W T F S
      1
2345678
910 1112131415
16171819202122
23242526272829
3031     

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 1st, 2025 09:31 pm
Powered by Dreamwidth Studios