#r #dataframe #plot
#r #фрейм данных #график
Вопрос:
Я пытаюсь отобразить данные из набора данных
Я использовал эту функцию:
wine_red <- read.csv2("winequality-red.csv")
ggplot(wine_red, aes(x=quality, y=alcohol))
scale_fill_continuous(type = "viridis")
geom_bin2d(binwidth=1)
Но, делая это, я получаю ось y, которая не отсортирована должным образом: она начинается с 10 -> 19, затем 7 -> 9
Как я могу отсортировать их в правильном числовом порядке?
Комментарии:
1. Это происходит, если ваши значения y не являются числовыми, они идеально отсортированы, как и должны делать символы. Поэтому убедитесь, что ваши значения y являются числовыми.
2. Хорошо, и как это сделать? Я попробовал цикл с
w_red[,a]<-as.numeric(w_red[,a])
, но преобразование получило неправильные значения (0,4 стало 5, а 0,56 стало 57)3. Пожалуйста, проясните свой пример. Вы предоставляете
wine_red
данные в качестве данных в своем ggplot, затем используетеdata
в своей эстетике и теперь упоминаетеw_red
в качестве своих данных?4. Я добавил строку, которая получает данные (и исправил вторую строку)
5. Вам необходимо установить разделитель и разделитель в read.csv, разница между read.csv и read.csv2 должна зависеть от языка / локали, где первый использует запятую в качестве разделителя и точку в качестве разделителя, в то время как другой использует точку с запятой в качестве разделителя и запятую в качестве разделителя. Ваши данные смешаны … так что в любом случае с read.csv у вас есть правильный разделитель, но неправильный разделитель. таким образом, он видит ваши значения как строку, а не как число. Короче говоря, я советую всегда использовать только read.csv и установить свои настройки:
read.csv(file, sep = ";", dec = ".")
будет работать.
Ответ №1:
Ваш код работает нормально, так как data
вам нужно использовать winequality_red
and для x=winequality_red$quality
and y=winequality_red$alcohol
. Также ниже приведен пример, как преобразовать ваши данные, чтобы разделить столбцы.
winequality_red <- read_delim("HERE SPECIFY YOUR DATA LOCATION",
";", escape_double = FALSE, trim_ws = TRUE)
ggplot(winequality_red , aes(x=winequality_red$quality, y=winequality_red$alcohol))
scale_fill_continuous(type = "viridis")
geom_bin2d(binwidth=1)
Комментарии:
1. read_delim выдает ошибку в скобках
2. @Foxhunt именно так, как вам нужно что-то вроде «C:/Users/Downloads/winequality-red.csv «. Итак, вам нужно указать местоположение ваших данных, за которым следуют остальные, «;», escape_double = FALSE, trim_ws = TRUE)
3. Извините, я пропустил строку,
";"
которая выдает ошибку. Я удалил его, и он работал хорошо. Спасибо
Ответ №2:
Что-то вроде этого?
library(tidyverse)
df <- winequality_red
df %>%
select(quality, alcohol) %>%
ggplot(aes(x = quality, y=alcohol))
scale_fill_continuous(type = "viridis")
geom_bin2d(binwidth = 1)
Комментарии:
1. Я попробовал ваш код, но получил тот же результат, что и предыдущий
2. Используем ли мы один и тот же фрейм данных:
winequality_red
3. Да, это так, с качеством, которое варьируется от 3 до 8, а alcohol — от 8,4 до 14,9. Я делал только
read.csv2
раньше4. используйте это вместо
read.csv(file, sep = ";", dec = ".")