сюжет на турнике в R - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь построить диаграмму и хочу показать процент в конце горизонтальной линии .. Не удалось получить .. в чем ошибка

y <- c('Others(27%)','Environment','Family Life & children','Combating terrorism','Pensions',
   'Europe', 'Housing', 'Education', 'Tax','Benefits','Immigration & Assylum','Health','Economy')
x <- c(27,10,12,15,18,20,20,21,21,25,42,46,49)

mylabels <- c('....27%','10%','12%','15%','18%','20%','20%','21%','21%','25%','42%','46%','49%')

par(mar=c(5,10,4,2)+0.1)
usr <- par( "usr" )
my_bar<-barplot(x,main="British Voters Election Priority (2015)", horiz=TRUE,las = 1,
        names.arg=y, xlim=c(0, 60), border = 'black',         
col=rev(topo.colors(14)),
        xlab="Percentage (%)")  
abline(v=x, col='grey', type="l", lty=2)
#text(myvect1, b[1,], mylabels, col="white", adj=1) 
text(my_bar, mylabels, cex=1) 

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

Если вы хотите, чтобы числа отображались в конце столбцов, просто извлеките числовые символы из «mylabels», чтобы получить соответствующие x-координаты, и установите pos = 4, чтобы они отображались справа от столбцов.Что касается цветов для полос, просто выберите палитру, которая соответствует вашим пожеланиям, или укажите все 13 цветов вручную.В сети есть тонны шпаргалок с разными цветными узорами для R.

 my_bar<-barplot(x,main="British Voters Election Priority (2015)",      horiz=TRUE,las = 1,
            names.arg=y, xlim=c(0, 60), border = 'black',         
            col = palette(rainbow(13)),
            xlab="Percentage (%)")  
 abline(v=x, col='grey', type="l", lty=2)
 #text(myvect1, b[1,], mylabels, col="white", adj=1) 
 text(as.numeric(gsub("\\D", "", mylabels)), my_bar, mylabels, cex=1, pos = 4) 

enter image description here

0 голосов
/ 19 мая 2018

Вы не указали x-координаты для того, где текст должен быть нанесен.Ваш код теперь принимает значения my_bar как для x-координат, так и для y-координат.Если я прав, вы хотите что-то подобное.

enter image description here

Просто используйте эту строку кода в конце, чтобы получить:

text(60, my_bar, mylabels, cex=1, pos = 2)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...