2016-12-29 2 views
3

Я использую функцию gap.barplot() из plotrix, и у меня возникла проблема, когда некоторые значения очень малы. Начиная со следующего dataframe:Бары, не привязанные к нулю с использованием gap.barplot

test.df <- data.frame(
perc = c(2.5,7.5,12.5,17.5,22.5,27.5,32.5,37.5,42.5,47.5,52.5,57.5,62.5,67.5,72.5,77.5,82.5,87.5,92.5,97.5), 
count = c(143649,30872,17444,11333,7513,5257,3677,2795,1976,1530,1022,916,862,985,808,339,59,2,1,1) 
) 

Если я создаю гэп бар участок следующим образом:

library(plotrix) 
gap.barplot(test.df$count, gap=c(38000,136000), xaxlab=test.df$perc, xtics=test.df$perc, ytics=c(0:30)*5000, col="white", las=1) 

он выходит глядя в порядке.

enter image description here

Однако, если я пытаюсь разделить "считать" значения на 1000, используя следующий код:

gap.barplot(test.df$count/1000, gap=c(38,136), xaxlab=test.df$perc, xtics=test.df$perc, ytics=c(0:30)*5, col="white", las=1) 

бруски не закрепленную на 0.

enter image description here

Все значения «count» больше 3000 (или 3 на новой шкале) направлены вниз, даже если они больше нуля. По какой-то причине бары привязаны к 3, а не к 0. Кто-нибудь знает, почему это произойдет и что я могу сделать, чтобы исправить это?

ответ

1

Я только что рассмотрел это. Похоже, проблема была исправлена ​​в новой версии пакета. Когда я установил графику, используя следующую команду из pacakge devtools, я смог создать правильный график.

install_github("cran/plotrix") 

enter image description here

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

botgap <- ifelse(gap[1] < 0, gap[1], xlim[1]) 

и недавно был обновлен следующим образом:

botgap<-ylim[1] 

В вашем примере, я видел, что пакет вычисляет ботгу p = 2.5 (поэтому все значения ниже 2.5 появлялись с отрицательными барами), но вы хотели его в 0. Я не вижу способа переопределить значение бот-дро в предыдущей версии пакета, поэтому вы можете захотеть захватить более новая версия, если возможно. Другой вариант - создать новую функцию, определенную вами с правильным кодом.

Если вы хотите проверить сами, вы можете использовать plotrix :: gap.barplot в консоли R, чтобы увидеть загруженную вами функцию и сравнить код с более новой версией на github here.

+0

спасибо. Обновленный код работает для меня. – user1399932

Смежные вопросы