#r #charts #bar-chart
Вопрос:
Я хотел отобразить 2 элемента на гистограмме. Я использовал аргумент width для уменьшения ширины каждого бара, но они все равно не корректируются. Я обнаружил, что при увеличении аргумента пространства столбики станут меньше, но они будут очень далеко друг от друга. Не мог бы кто-нибудь, пожалуйста, помочь объяснить мне, как решить эту проблему? Я приложил коды и диаграмму ниже для вашей справки. Спасибо, что уделили мне время.
predErrlt;-c(mars = MARS_Predictions_Err, svm = SVM_Predictions_Err) barplot(predErr, main = "Prediction Error Bar Chart", xlab = "Models", ylab = "Err", width = 1, ylim = c(0,1000))
Комментарии:
1. Вы хотите, чтобы весь участок был уже или только две полосы? Если это первое, вам следует настроить ширину устройства для построения графика вместо штриховой диаграммы.
2. Я хотел бы просто изменить только два бара
Ответ №1:
Вам нужно поиграть с тремя параметрами: width
(задает ширину каждого бара), xlim
(задает диапазон оси x) и space
(задает расстояние между барами как долю от средней ширины бара).
Например, эта комбинация параметров:
heights = c("m1"=2, "m2"=4) barplot(heights, xlab = "Models", ylab = "Err", width = c(0.1,0.1), xlim = c(0,1), space = 3)
дал мне этот результат, и я верю, что это то, чего вы хотите:
Комментарии:
1. Да, это то, что я пытался получить. Я считаю, что проблема заключалась в том, что я не включил xlim! Большое вам спасибо за вашу помощь!
Ответ №2:
Я сгенерировал некоторые данные. Чтобы изменить расстояние между прутьями, я использовал space=1
. Это ваш ответ на ваш вопрос?
set.seed(100) MARS_Predictions_Errlt;-rnorm(1,200) SVM_Predictions_Errlt;-rnorm(1,200) predErrlt;-c(mars = MARS_Predictions_Err, svm = SVM_Predictions_Err) barplot(predErr, main = "Prediction Error Bar Chart", xlab = "Models", ylab = "Err", width = 3, ylim = c(0,1000), space=1)
пробел=1