WedX - журнал о программировании и компьютерных науках

Создание подзаголовка из гистограммы в R

У меня есть гистограмма, и я хотел бы создать подзаголовок из гистограммы, который включает только первый и второй столбцы, как я могу сделать это в R? Я написал следующий код, но он не работает должным образом.

   library(package="TeachingDemos")
   barplot(c(.1, .2, .3,.4), space=0, ylim=c(0, 1))
   lines(c(0, 1, 2, 3), y=c(.1, .2, .3, .4), col="blue",lty=2)
   op <- par(no.readonly=TRUE)
   new = subplot(
   barplot(c(.1, .2, .3, .4), space=0, xlim=c(0, 2), ylim=c(0, 0.001), xlab="", ylab= "", lwd=2),  grconvertX(.1,from='npc'), grconvertY(0.25,from='npc'), 
   vadj=0, hadj=0 , size=c(1, .5))
   op <- par(no.readonly=TRUE)
   new1 = subplot(
   lines(c(0, 1, 2, 3),c(.1, .2, .3, .4), col="blue", lwd =2, lty = 2, type="l", xlim=c(0, .5),     ylim=c(0, 0.02), xlab="", ylab="", labels = FALSE),
   grconvertX(.1,from='npc'), grconvertY(0.25,from='npc'), vadj=0, hadj=0 , size=c(1, .5))
   par(new)
   par(new1)
r
16.03.2014

Ответы:


1

Я заметил, что ваш ylim должен быть скорректирован с учетом имеющихся у вас данных, а также того факта, что вы хотите отображать первые два элемента в векторе c(0.1,0.2,0.3,0.4).

Может быть, par(..., fig=c(), new=T) поможет вам?

# Begin plotting
par(oma=c(rep(1,4)),ps=12,fig=c(0,1,0,1))
barplot(c(.1, .2, .3,.4), space=0, ylim=c(0, 1))
lines(c(0, 1, 2, 3), y=c(.1, .2, .3, .4), col="blue",lty=2)

# Begin the sub-plot 1
par(fig=c(0.2,0.6,0.5,0.95),oma=c(0,1,0,0),new=T)
# You need to only plot the values you needed: I updated ylim to reflect this too.
barplot(c(.1, .2), space=0, xlim=c(0, 2), ylim=c(0, 0.3), xlab="", ylab= "", lwd=2)
box(lty='solid',col='black')

# Begin the sub-plot 2
par(fig=c(0.6,1,0.5,0.95),oma=c(0,1,0,0),new=T)
lines(c(0, 1),c(.1, .2), col="blue", lwd =2, lty = 2, type="l", xlim=c(0, .5),     ylim=c(0, 0.3), xlab="", ylab="")
17.03.2014

2

Я не уверен, что именно вы пытаетесь сделать, но вот код, основанный на вашем, который работает:

library(package="TeachingDemos")

barplot(c(.1, .2, .3,.4), space=0, ylim=c(0, 1))

lines(c(0, 1, 2, 3), y=c(.1, .2, .3, .4), col="blue",lty=2)

op <- par(no.readonly=TRUE)

new <- subplot(
    barplot(c(.1, .2, .3, .4)[1:2], space=0, xlim=c(0, 2), ylim=c(0, 0.2), 
        xlab="", ylab= "", lwd=2),  
    grconvertX(.1,from='npc'), grconvertY(0.25,from='npc'), 
    vadj=0, hadj=0 , size=c(1, .5))

tmp <- par(new)
lines( c(0,1,2,3)[1:2], c(0.1,0.2,0.3,0.4)[1:2], col='blue', lwd=2, lty=2 )
par(tmp)

Функция subplot не используется для функций более низкого уровня, скорее вы устанавливаете параметры с возвратом из subplot, затем добавляете к подзаголовку, а затем сбрасываете параметры обратно. Кроме того, если вы хотите показать только часть графика с помощью xlim и ylim, необходимо установить область отсечения, некоторые функции построения графика делают это автоматически, но похоже, что barplot этого не делает. Возможно, вы сможете исправить это с помощью clip и/или других функций, но я думаю, что проще всего просто сделать график так, чтобы его не нужно было обрезать (в примере я подмножил данные).

17.03.2014
Новые материалы

Как создать диаграмму градиентной кисти с помощью D3.js
Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


Для любых предложений по сайту: [email protected]