막대 그래프를 그리는 동안이 오류가 발생하고 제거 할 수 없습니다. qplot과 ggplot을 모두 시도했지만 여전히 동일한 오류가 발생합니다.
다음은 내 코드입니다.
library(dplyr)
library(ggplot2)
#Investigate data further to build a machine learning model
data_country = data %>%
group_by(country) %>%
summarise(conversion_rate = mean(converted))
#Ist method
qplot(country, conversion_rate, data = data_country,geom = "bar", stat ="identity", fill = country)
#2nd method
ggplot(data_country)+aes(x=country,y = conversion_rate)+geom_bar()
오류:
stat_count() must not be used with a y aesthetic
data_country의 데이터 :
country conversion_rate
<fctr> <dbl>
1 China 0.001331558
2 Germany 0.062428188
3 UK 0.052612025
4 US 0.037800687
오류는 점선 차트가 아니라 막대 차트에서 발생합니다.
답변
먼저 코드가 약간 벗어났습니다. aes()
의 인수이며 +를 ggplot()
사용하지 않습니다.ggplot(...)
aes(...) + layers
둘째, 도움말 파일에서 ?geom_bar
:
기본적으로 geom_bar는 stat = “count”를 사용하여 각 그룹의 케이스 수에 바의 높이를 비율로 만듭니다 (또는 가중치 미학이 제공되는 경우 가중치의 합계). 막대의 높이가 데이터의 값을 나타내도록하려면 stat = “identity”를 사용하고 변수를 y 미학에 매핑합니다.
막대의 높이가 다음과 같은 두 번째 경우 conversion_rate
를 원합니다 . 그래서 원하는 것은 …
data_country <- data.frame(country = c("China", "Germany", "UK", "US"),
conversion_rate = c(0.001331558,0.062428188, 0.052612025, 0.037800687))
ggplot(data_country, aes(x=country,y = conversion_rate)) +geom_bar(stat = "identity")
결과:
답변
데이터 프레임에있는 데이터를 y 값으로 사용하려면 매핑 매개 변수에 stat = “identity”를 추가해야합니다. geom_bar 함수에는 기본 y 값이 있습니다. 예를 들면
ggplot(data_country)+
geom_bar(mapping = aes(x = country, y = conversion_rate), stat = "identity")
답변
geom_col ()을 직접 사용할 수 있습니다. 이 링크 https://ggplot2.tidyverse.org/reference/geom_bar.html 에서 geom_bar ()와 geom_col ()의 차이점을 참조하십시오.
geom_bar ()는 각 그룹의 케이스 수에 비례하는 막대의 높이를 만듭니다. 막대의 높이가 데이터의 값을 나타내도록하려면 geom_col ()을 대신 사용하십시오.
ggplot(data_country)+aes(x=country,y = conversion_rate)+geom_col()
답변
나는 똑같은 것을 찾고 있었고 이것도 작동 할 수 있습니다.
p.Wages.all.A_MEAN <- Wages.all %>%
group_by(`Career Cluster`, Year)%>%
summarize(ANNUAL.MEAN.WAGE = mean(A_MEAN))
names (p.Wages.all.A_MEAN) [1] “커리어 클러스터” “연도” “ANNUAL.MEAN.WAGE”
p.Wages.all.a.mean <- ggplot(p.Wages.all.A_MEAN, aes(Year, ANNUAL.MEAN.WAGE , color= `Career Cluster`))+
geom_point(aes(col=`Career Cluster` ), pch=15, size=2.75, alpha=1.5/4)+
theme(axis.text.x = element_text(color="#993333", size=10, angle=0)) #face="italic",
p.Wages.all.a.mean