R 在y轴上的下一个值之间留出空间
下面是我的图表代码的样子:R 在y轴上的下一个值之间留出空间,r,ggplot2,R,Ggplot2,下面是我的图表代码的样子: ggplot(dane, aes(x=państwo, y=całkowiteZarobki)) + geom_point(aes(col=rodzajSportu, size=całkowiteZarobki)) + geom_smooth(method="loess", se=F) + labs(subtitle="Area Vs Population", y="Population", x="Area",
ggplot(dane, aes(x=państwo, y=całkowiteZarobki)) +
geom_point(aes(col=rodzajSportu, size=całkowiteZarobki)) +
geom_smooth(method="loess", se=F) +
labs(subtitle="Area Vs Population",
y="Population",
x="Area",
title="Scatterplot",
caption = "Source: midwest")+
theme(text = element_text(size=15),axis.text.x = element_text(angle=90, hjust=1))
Rank Name Sport Total.Pay Salary.Winnings Endorsements Nation Gender Year.of.birth
1 55 Aaron Rodgers Football $22,000,000 $14,500,000 $7,500,000 United States Male 1983
2 95 Adam Scott Golf $17,700,000 $8,700,000 $9,000,000 Australia Male 1980
3 60 Adrian Gonzalez Baseball $21,500,000 $21,100,000 $400,000 United States Male 1982
4 48 Alex Rodriguez Baseball $22,900,000 $22,600,000 $300,000 United States Male 1975
5 93 Alfonso Soriano Baseball $18,050,000 $18,000,000 $50,000 Dominican Republic Male 1976
6 27 Amar'e Stoudemire Basketball $26,700,000 $21,700,000 $5,000,000 United States Male 1982
7 75 Barry Zito Baseball $20,400,000 $20,300,000 $100,000 United States Male 1978
8 47 Blake Griffin Basketball $23,000,000 $16,500,000 $6,500,000 United States Male 1989
9 91 Branden Albert Football $18,435,000 $18,400,000 $35,000 United States Male 1984
10 97 Brandon Marshall Football $17,500,000 $16,800,000 $700,000 United States Male 1984
11 74 Carl Crawford Baseball $20,500,000 $20,200,000 $300,000 United States Male 1981
12 84 Carlos Dunlap Football $18,750,000 $18,700,000 $50,000 United States Male 1989
13 24 Carmelo Anthony Basketball $29,400,000 $21,400,000 $8,000,000 United States Male 1984
14 37 CC Sabathia Baseball $24,200,000 $23,000,000 $1,200,000 United States Male 1980
15 37 Chris Paul Basketball $24,200,000 $18,700,000 $5,500,000 United States Male 1985
16 57 Chris Bosh Basketball $21,800,000 $19,300,000 $2,500,000 United States Male 1984
17 30 Cliff Lee Baseball $25,300,000 $25,100,000 $200,000 United States Male 1978
18 70 Cole Hamels Baseball $20,700,000 $20,500,000 $200,000 United States Male 1983
19 40 Darrelle Revis Football $23,800,000 $23,000,000 $800,000 United States Male 1985
20 80 David Ortiz Baseball $19,800,000 $14,800,000 $5,000,000 Dominican Republic Male 1975
21 35 Derek Jeter Baseball $24,300,000 $15,300,000 $9,000,000 United States Male 1974
22 79 Deron Williams Basketball $20,000,000 $18,500,000 $1,500,000 United States Male 1984
23 13 Derrick Rose Basketball $36,600,000 $17,600,000 $19,000,000 United States Male 1988
24 45 Dirk Nowitzki Basketball $23,200,000 $22,700,000 $500,000 Germany Male 1978
25 33 Zack Greinke Baseball $24,450,000 $24,400,000 $50,000 United States Male 1983
26 66 Drew Brees Football $21,000,000 $10,000,000 $11,000,000 United States Male 1979
27 29 Dwight Howard Basketball $25,500,000 $20,500,000 $5,000,000 United States Male 1985
28 23 Dwyane Wade Basketball $29,900,000 $18,900,000 $11,000,000 United States Male 1982
29 6 Tiger Woods Golf $61,200,000 $6,200,000 $55,000,000 United States Male 1975
30 66 Eli Manning Football $21,000,000 $13,500,000 $7,500,000 United States Male 1981
31 11 Manny Pacquiao Boxing $41,800,000 $41,000,000 $800,000 Philippines Male 1978
32 77 Felix Hernandez Baseball $20,300,000 $20,100,000 $200,000 Venezuela Male 1986
33 21 Fernando Alonso Racing $31,000,000 $29,000,000 $2,000,000 Spain Male 1981
34 63 Fernando Torres Soccer $21,300,000 $17,800,000 $3,500,000 Spain Male 1984
35 1 Floyd Mayweather Boxing $105,000,000 $105,000,000 $0 United States Male 1977
36 92 Franck Ribéry Soccer $18,300,000 $16,800,000 $1,500,000 France Male 1983
37 14 Gareth Bale Soccer $36,400,000 $25,400,000 $11,000,000 Wales Male 1989
38 53 Geno Atkins Football $22,350,000 $22,300,000 $50,000 United States Male 1988
39 59 Yaya Touré Soccer $21,700,000 $19,200,000 $2,500,000 Ivory Coast Male 1983
40 64 Henrik Stenson Golf $21,200,000 $18,000,000 $3,200,000 Sweden Male 1976
41 94 Jairus Byrd Football $18,000,000 $17,900,000 $100,000 United States Male 1986
42 70 Jason Peters Football $20,750,000 $20,700,000 $50,000 United States Male 1982
43 97 Jayson Werth Baseball $17,500,000 $17,300,000 $200,000 United States Male 1979
44 86 Jeff Gordon Racing $18,700,000 $13,700,000 $5,000,000 United States Male 1971
45 42 Jimmie Johnson Racing $23,500,000 $17,000,000 $6,500,000 United States Male 1975
46 52 Joe Johnson Basketball $22,500,000 $21,500,000 $1,000,000 United States Male 1981
47 48 Johan Santana Baseball $22,900,000 $22,500,000 $400,000 Venezuela Male 1979
48 18 Matthew Stafford Football $33,000,000 $31,500,000 $1,500,000 United States Male 1988
49 77 Albert Pujols Baseball $20,300,000 $18,300,000 $2,000,000 Dominican Republic Male 1980
50 32 Miguel Cabrera Baseball $24,600,000 $22,600,000 $2,000,000 Venezuela Male 1983
51 31 Joe Mauer Baseball $24,800,000 $23,000,000 $1,800,000 United States Male 1983
52 62 Joe Haden Football $21,350,000 $21,200,000 $150,000 United States Male 1989
53 69 Julius Peppers Football $20,800,000 $20,400,000 $400,000 United States Male 1980
54 70 Justin Verlander Baseball $20,700,000 $20,200,000 $500,000 United States Male 1983
55 20 Kevin Durant Basketball $31,900,000 $17,900,000 $14,000,000 United States Male 1988
56 5 Kobe Bryant Basketball $61,500,000 $30,500,000 $31,000,000 United States Male 1978
57 89 Larry Fitzgerald Football $18,500,000 $17,000,000 $1,500,000 United States Male 1983
58 3 LeBron James Basketball $72,300,000 $19,300,000 $53,000,000 United States Male 1984
59 19 Lewis Hamilton Racing $32,000,000 $29,000,000 $3,000,000 England Male 1985
60 41 Li Na Tennis $23,600,000 $5,600,000 $18,000,000 China Female 1982
61 4 Lionel Messi Soccer $64,700,000 $41,700,000 $23,000,000 Argentina Male 1987
62 100 Luis Suárez Soccer $17,300,000 $13,300,000 $4,000,000 Uruguay Male 1987
我一直在寻找如何解决这个问题几个小时,现在很遗憾,我没有找到解决办法。我还按照您的建议添加了我的数据。下面是它的样子:
ggplot(dane, aes(x=państwo, y=całkowiteZarobki)) +
geom_point(aes(col=rodzajSportu, size=całkowiteZarobki)) +
geom_smooth(method="loess", se=F) +
labs(subtitle="Area Vs Population",
y="Population",
x="Area",
title="Scatterplot",
caption = "Source: midwest")+
theme(text = element_text(size=15),axis.text.x = element_text(angle=90, hjust=1))
Rank Name Sport Total.Pay Salary.Winnings Endorsements Nation Gender Year.of.birth
1 55 Aaron Rodgers Football $22,000,000 $14,500,000 $7,500,000 United States Male 1983
2 95 Adam Scott Golf $17,700,000 $8,700,000 $9,000,000 Australia Male 1980
3 60 Adrian Gonzalez Baseball $21,500,000 $21,100,000 $400,000 United States Male 1982
4 48 Alex Rodriguez Baseball $22,900,000 $22,600,000 $300,000 United States Male 1975
5 93 Alfonso Soriano Baseball $18,050,000 $18,000,000 $50,000 Dominican Republic Male 1976
6 27 Amar'e Stoudemire Basketball $26,700,000 $21,700,000 $5,000,000 United States Male 1982
7 75 Barry Zito Baseball $20,400,000 $20,300,000 $100,000 United States Male 1978
8 47 Blake Griffin Basketball $23,000,000 $16,500,000 $6,500,000 United States Male 1989
9 91 Branden Albert Football $18,435,000 $18,400,000 $35,000 United States Male 1984
10 97 Brandon Marshall Football $17,500,000 $16,800,000 $700,000 United States Male 1984
11 74 Carl Crawford Baseball $20,500,000 $20,200,000 $300,000 United States Male 1981
12 84 Carlos Dunlap Football $18,750,000 $18,700,000 $50,000 United States Male 1989
13 24 Carmelo Anthony Basketball $29,400,000 $21,400,000 $8,000,000 United States Male 1984
14 37 CC Sabathia Baseball $24,200,000 $23,000,000 $1,200,000 United States Male 1980
15 37 Chris Paul Basketball $24,200,000 $18,700,000 $5,500,000 United States Male 1985
16 57 Chris Bosh Basketball $21,800,000 $19,300,000 $2,500,000 United States Male 1984
17 30 Cliff Lee Baseball $25,300,000 $25,100,000 $200,000 United States Male 1978
18 70 Cole Hamels Baseball $20,700,000 $20,500,000 $200,000 United States Male 1983
19 40 Darrelle Revis Football $23,800,000 $23,000,000 $800,000 United States Male 1985
20 80 David Ortiz Baseball $19,800,000 $14,800,000 $5,000,000 Dominican Republic Male 1975
21 35 Derek Jeter Baseball $24,300,000 $15,300,000 $9,000,000 United States Male 1974
22 79 Deron Williams Basketball $20,000,000 $18,500,000 $1,500,000 United States Male 1984
23 13 Derrick Rose Basketball $36,600,000 $17,600,000 $19,000,000 United States Male 1988
24 45 Dirk Nowitzki Basketball $23,200,000 $22,700,000 $500,000 Germany Male 1978
25 33 Zack Greinke Baseball $24,450,000 $24,400,000 $50,000 United States Male 1983
26 66 Drew Brees Football $21,000,000 $10,000,000 $11,000,000 United States Male 1979
27 29 Dwight Howard Basketball $25,500,000 $20,500,000 $5,000,000 United States Male 1985
28 23 Dwyane Wade Basketball $29,900,000 $18,900,000 $11,000,000 United States Male 1982
29 6 Tiger Woods Golf $61,200,000 $6,200,000 $55,000,000 United States Male 1975
30 66 Eli Manning Football $21,000,000 $13,500,000 $7,500,000 United States Male 1981
31 11 Manny Pacquiao Boxing $41,800,000 $41,000,000 $800,000 Philippines Male 1978
32 77 Felix Hernandez Baseball $20,300,000 $20,100,000 $200,000 Venezuela Male 1986
33 21 Fernando Alonso Racing $31,000,000 $29,000,000 $2,000,000 Spain Male 1981
34 63 Fernando Torres Soccer $21,300,000 $17,800,000 $3,500,000 Spain Male 1984
35 1 Floyd Mayweather Boxing $105,000,000 $105,000,000 $0 United States Male 1977
36 92 Franck Ribéry Soccer $18,300,000 $16,800,000 $1,500,000 France Male 1983
37 14 Gareth Bale Soccer $36,400,000 $25,400,000 $11,000,000 Wales Male 1989
38 53 Geno Atkins Football $22,350,000 $22,300,000 $50,000 United States Male 1988
39 59 Yaya Touré Soccer $21,700,000 $19,200,000 $2,500,000 Ivory Coast Male 1983
40 64 Henrik Stenson Golf $21,200,000 $18,000,000 $3,200,000 Sweden Male 1976
41 94 Jairus Byrd Football $18,000,000 $17,900,000 $100,000 United States Male 1986
42 70 Jason Peters Football $20,750,000 $20,700,000 $50,000 United States Male 1982
43 97 Jayson Werth Baseball $17,500,000 $17,300,000 $200,000 United States Male 1979
44 86 Jeff Gordon Racing $18,700,000 $13,700,000 $5,000,000 United States Male 1971
45 42 Jimmie Johnson Racing $23,500,000 $17,000,000 $6,500,000 United States Male 1975
46 52 Joe Johnson Basketball $22,500,000 $21,500,000 $1,000,000 United States Male 1981
47 48 Johan Santana Baseball $22,900,000 $22,500,000 $400,000 Venezuela Male 1979
48 18 Matthew Stafford Football $33,000,000 $31,500,000 $1,500,000 United States Male 1988
49 77 Albert Pujols Baseball $20,300,000 $18,300,000 $2,000,000 Dominican Republic Male 1980
50 32 Miguel Cabrera Baseball $24,600,000 $22,600,000 $2,000,000 Venezuela Male 1983
51 31 Joe Mauer Baseball $24,800,000 $23,000,000 $1,800,000 United States Male 1983
52 62 Joe Haden Football $21,350,000 $21,200,000 $150,000 United States Male 1989
53 69 Julius Peppers Football $20,800,000 $20,400,000 $400,000 United States Male 1980
54 70 Justin Verlander Baseball $20,700,000 $20,200,000 $500,000 United States Male 1983
55 20 Kevin Durant Basketball $31,900,000 $17,900,000 $14,000,000 United States Male 1988
56 5 Kobe Bryant Basketball $61,500,000 $30,500,000 $31,000,000 United States Male 1978
57 89 Larry Fitzgerald Football $18,500,000 $17,000,000 $1,500,000 United States Male 1983
58 3 LeBron James Basketball $72,300,000 $19,300,000 $53,000,000 United States Male 1984
59 19 Lewis Hamilton Racing $32,000,000 $29,000,000 $3,000,000 England Male 1985
60 41 Li Na Tennis $23,600,000 $5,600,000 $18,000,000 China Female 1982
61 4 Lionel Messi Soccer $64,700,000 $41,700,000 $23,000,000 Argentina Male 1987
62 100 Luis Suárez Soccer $17,300,000 $13,300,000 $4,000,000 Uruguay Male 1987
你知道为什么它说1亿美元是最低价值吗?它显然应该位于y轴的顶部,但它仍然位于底部。根据@RonakShah和@TobiO提供的评论,看起来您的
całkowiteZarobki
变量被读取为字符而不是数字(可能是因为$符号和逗号)。要仅提取数字并将其转换为数字,可以使用以下代码:
as.numeric(unlist(lapply(stringr::str_extract_all(dane$całkowiteZarobki,"[0-9]+"),
function(entry) paste0(entry,collapse=""))))
之后,可以使用生成的ggplot代码并添加以下代码,将y轴格式化为带逗号的美元
scale_y_continuous(labels = scales::dollar)
很可能是因为
总体是字符/因子变量。通过删除逗号将其转换为数字,$
,使用as.numeric
,然后再次检查。这也会减少轴标签,从而解决您的问题我已经尝试过了,但当我将其更改为数字时,会将美元金额从0-100更改为数字。正如你所知,这并不完美,因为我想知道他们赚了多少钱。这可能是因为它读取的是因子水平,而不是实际值。尝试使用.numeric(as.character(…)。因此,您能否将dput(dane,20)
的输出包含在您的问题中?所以我们知道,你的数据是如何格式化的?嗨!我按照你说的做了,并添加了代码,但是出现了一个新问题。这里是代码的更改部分:gg hmm听起来像是y
并没有按预期创建,所以它的x
长度不同。首先,我将尝试检查我建议的第一个代码的结果是否只包含数字,并且长度是否与panstwo
相同。这将有助于确定错误所在。如果你像@TobiO建议的那样将你的数据包括在问题中,这也会有所帮助。X必须有不同的长度,因为它是球员来自的国家,Y是这些球员获胜的数量。基本上,一个国家可以有多个玩家,因此Y的多个值与X的单个值配对。然后,您应该将数据从宽格式转换为长格式。您可以使用tidyr::gather
来执行此操作。执行此转换后,每个x
观察值应有一个y
(每个国家将重复相同数量的y
观察值)。然后,我发布的代码应该可以处理长格式的新数据。您可以根据显示的数据构建绘图。在这些数据中,每个玩家都有一个观察值。你只需要做:df$Salary