изменить цвет скрипичного участка вы используете заполнить = переменную, например:
ggplot(diamonds, aes(x=cut,y=carat)) + geom_violin(aes(fill=cut))
То же самое касается boxplot
ggplot(diamonds, aes(x=cut,y=carat)) + geom_boxplot(aes(fill=cut))
но независимо от значения вы должны иметь одинаковое значение для каждого разреза, то есть, если вы хотите использовать, например, mea n depth/cut, как цветовая переменная, которую вы должны были бы закодировать.
с dplyr группой ваши бриллианты по разрезом и с Суммируйте получить глубину средней (или любой другой переменной)
library(dplyr)
diamonds_group <- group_by(diamonds, cut)
diamonds_group <- summarize(diamonds_group, Mean_Price = mean(price))
Тогда я использовал diamonds2 в качестве копии алмазов затем манипулировать набор данных
diamonds2 <- diamonds
я объединить оба dataframes, чтобы получить Mean_Depth в качестве переменной в diamonds2
diamonds2 <- merge(diamonds2, diamonds_group)
И теперь я могу построить его со средней глубиной в качестве переменного цвета
ggplot(diamonds2, aes(x=cut,y=carat)) + geom_boxplot(aes(fill=Mean_Price)) + scale_fill_gradient2(midpoint = mean(diamonds2$price))
Вы можете показать изображение (рисунок?) Ваш желаемого результата? Зачем вам нужны цвета; не влияет ли ширина скрипки на плотность? – Heroka
Привет, Герока, на самом деле моей конечной целью является окрас скрипичного сюжета (или ящик, который я предпочитаю в своем случае из-за ограничений по пространству) на основе другого параметра. Поэтому я хочу показать, как распределение, скажем, карат, влияет на другую переменную; скажем, изобилие. Например, если алмазы с высоким каратом редки (просто предположение), то участок участка скрипки с большей шириной должен быть более синим, а узкие области будут более красноватыми. – user2438149
Для набора данных бриллиантов можно будет заполнить кастрюлю для скрипки с каратами с переменной ценой, чтобы показать связь между каратом и ценой. Благодаря! – user2438149