2016-04-03 2 views
0

Я сгруппированной barplot, полученные с использованием ggplot в R с помощью следующего кодаИзменение xlim числового значения вызывает ошибки ggplot R

ggplot(mTogether, aes(x = USuniquNegR, y = value, fill = variable)) + 
geom_bar(stat = "identity", position = "dodge") + 
scale_fill_discrete(name = "Area", 
        labels = c("Everywhere", "New York")) + 
xlab("Reasons") + 
ylab("Proportion of total complaints") + 
coord_flip() + 
ggtitle("Comparison between NY and all areas") 

mTogether создается с помощью следующего кода

mTogether <- melt(together, id.vars = 'USuniquNegR') 

Расширенные данные Рамка вместе состоит из

 USperReasons  USperReasonsNY     USuniquNegR 
1 0.198343304187759 0.191304347826087     Late Flight 
2  0.35987114588127 0.321739130434783  Customer Service Issue 
3 0.0667280257708237 0.11304347826087    Lost Luggage 
4 0.0547630004601933 0.00869565217391304  Flight Booking Problems 
5 0.109065807639208 0.121739130434783     Can't Tell 
6 0.00460193281178095     0    Damaged Luggage 
7 0.0846755637367694 0.0782608695652174   Cancelled Flight 
8 0.0455591348366314 0.0521739130434783     Bad Flight 
9 0.0225494707777266 0.0347826086956522     longlines 
10 0.0538426138978371 0.0782608695652174 Flight Attendant Complaints 

Совместно может быть создано followin г

together<-data.frame(cbind(USperReasons,USperReasonsNY,USuniquNegR)) 

где

USperReasons <- c(0.19834,0.35987,.06672,0.05476,0.10906,.00460,.08467,0.04555,0.02254,0.05384) 

USperReasonsNY <- c(0.191304348,0.321739130,0.113043478,0.008695652,0.121739130,0.000000000,0.078260870,0.05217391,0.034782609,0.078260870) 

USuniquNegR <- c("Late Flight","Customer Service Issue","Lost Luggage","Flight Booking Problems","Can't Tell","Damaged Luggage","Cancelled Flight","Bad Flight","longlines","Flight Attendant Complaints") 

Проблема заключается в том, когда я пытаюсь изменить xlim в ggplot с помощью

+ xlim(0, 1) 

Я просто кажется, чтобы получить ошибку: дискретное значение, подаваемое на непрерывной шкале Я не могу понять, почему это происходит, но мне нужно его решить, потому что в настоящее время ось x начинается ниже 0 и очень сильно упакована: image of ggplot output

+0

Выполняется ли xlim() до или после Coord_flip()? Попробуйте установить ylim() –

+0

Пожалуйста, добавьте фрагмент кода для генерации data.frame 'together', чтобы иметь рабочий пример. – Uwe

+0

Я делаю xlim (0,1) или ylim (0,1) befpre или после Coord_flip() Я получаю сообщение об ошибке –

ответ

1

Вы должны удалить cbind из

together<-data.frame(cbind(USperReasons,USperReasonsNY,USuniquNegR)) 

потому str(together) говорит, что все три столбца являются факторами.

С

together <- data.frame(USperReasons, USperReasonsNY, USuniquNegR) 

сюжет выглядит разумным для меня (без использования ylim или xlim).

enter image description here

Таким образом, ошибка была не в ggplot2, но при подготовке данных. Поэтому, пожалуйста, предоставьте полный рабочий пример, который можно скопировать, вставить и запустить при задании вопроса в следующий раз. Спасибо.

2

Проблема в том, что вы комбинируете свои векторы cbind() вместе, преобразуя числа в символы. Исправьте это, а остальное должно исправить себя.

together<-data.frame(USperReasons,USperReasonsNY,USuniquNegR) 
Смежные вопросы