> for full codes - source codes

> for data set - football.csv file

Hey, guys here I used KAGGLE data set ( https://www.kaggle.com/datasets ) which is related to the football. There are 18156 players and 48 variables and this data set is valid for up to 2020 worldwide versa. The researcher mainly focused on to the performance ratings of the players. So according to those components I tried to carry out my data analytics and data visualizations parts.

library(tidyverse)
df <- read.csv("Foot_Ball.csv")
head(df)
##                Name Age Nationality Overall Potential                Club
## 1          L. Messi  31   Argentina      94        94        FC Barcelona
## 2 Cristiano Ronaldo  33    Portugal      94        94            Juventus
## 3         Neymar Jr  26      Brazil      92        93 Paris Saint-Germain
## 4            De Gea  27       Spain      91        93   Manchester United
## 5      K. De Bruyne  27     Belgium      91        92     Manchester City
## 6         E. Hazard  27     Belgium      91        91             Chelsea
##     Value  Wage Preferred.Foot Skill.Moves      Work.Rate Position Height
## 1 \200110.5M \200565K           Left           4 Medium/ Medium       RF    5'7
## 2    \20077M \200405K          Right           5      High/ Low       ST    6'2
## 3 \200118.5M \200290K          Right           5   High/ Medium       LW    5'9
## 4    \20072M \200260K          Right           1 Medium/ Medium       GK    6'4
## 5   \200102M \200355K          Right           4     High/ High      RCM   5'11
## 6    \20093M \200340K          Right           4   High/ Medium       LF    5'8
##   Weight Finishing Penalties FKAccuracy HeadingAccuracy ShortPassing
## 1 159lbs        95        75         94              70           90
## 2 183lbs        94        85         76              89           81
## 3 150lbs        87        81         87              62           84
## 4 168lbs        13        40         19              21           50
## 5 154lbs        82        79         83              55           92
## 6 163lbs        84        86         79              61           89
##   LongPassing LongShots ShotPower Volleys Crossing Curve Dribbling BallControl
## 1          87        94        85      86       84    93        97          96
## 2          77        93        95      87       84    81        88          94
## 3          78        82        80      84       79    88        96          95
## 4          51        12        31      13       17    21        18          42
## 5          91        91        91      82       93    85        86          91
## 6          83        80        82      80       81    83        95          94
##   Acceleration SprintSpeed Agility Reactions Balance Jumping Stamina Strength
## 1           91          86      91        95      95      68      72       59
## 2           89          91      87        96      70      95      88       79
## 3           94          90      96        94      84      61      81       49
## 4           57          58      60        90      43      67      43       64
## 5           78          76      79        91      77      63      90       75
## 6           94          88      95        90      94      56      83       66
##   Positioning Composure Vision Aggression Interceptions Marking StandingTackle
## 1          94        96     94         48            22      33             28
## 2          95        95     82         63            29      28             31
## 3          89        94     87         56            36      27             24
## 4          12        68     68         38            30      15             21
## 5          87        88     94         76            61      68             58
## 6          87        91     89         54            41      34             27
##   SlidingTackle GKDiving GKHandling GKKicking GKPositioning GKReflexes
## 1            26        6         11        15            14          8
## 2            23        7         11        15            14         11
## 3            33        9          9        15            15         11
## 4            13       90         85        87            88         94
## 5            51       15         13         5            10         13
## 6            22       11         12         6             8          8

Nationalities of players

Around the world football players are met as every country as the most interesting game is the football lot of nations. So I had to analyze what nationality was the most contributed for this game.

(natio <- df %>%
  group_by(Nationality) %>%
  summarize(count = n()))
## # A tibble: 164 x 2
##    Nationality       count
##    <chr>             <int>
##  1 Afghanistan           4
##  2 Albania              39
##  3 Algeria              60
##  4 Andorra               1
##  5 Angola               15
##  6 Antigua & Barbuda     4
##  7 Argentina           936
##  8 Armenia              10
##  9 Australia           236
## 10 Austria             296
## # ... with 154 more rows

If we consider how many players of the nationalities has contributed for this game more than 100 from one nation,

natio <- df %>%
  group_by(Nationality) %>%
  summarize(count = n()) %>%
  filter(count>=100)

ggplot(natio, aes(x = count, fct_reorder(Nationality, count), color = "Red")) + 
  scale_x_continuous(breaks = seq(100, 2000, by = 100))+
  geom_point() +
  labs(
    title = paste("NATIONALITIES OF WORLD FOOTBALL PLAYERS"),
    subtitle = paste("-MORE THAN 100 PLAYRES UPTO 2020-"),
    caption = paste("out of 164 nationalities"),
    x = "Number of playres", y = "Nationalities"
  )

England has contributed more than 1650 players for the football as the top nation and we can see how many nationalities have contributed players more than 100 from this graph's content.

Preferred Foot of the players

df %>%
  group_by(Preferred.Foot) %>%
  summarize(count = n())
## # A tibble: 2 x 2
##   Preferred.Foot count
##   <chr>          <int>
## 1 Left            4211
## 2 Right          13948

From 18159 of players we can identify 13948 players who have their preferred foot as Right foot and there are 4211 players who preferred foot as Left foot as well.

The working rate according to Skill Moves of the players

There are five categories of skill moves according to players as 1,2,3,4 & 5. There are several types of working rates of players. Here I could carry out explicit visualization in together these categories. From the following outcome that components categorize in to the preferred foot also.

ggplot(df) +
  geom_bar(
    mapping = aes(x = Work.Rate, fill = Preferred.Foot)) +
  facet_grid(Skill.Moves ~  Preferred.Foot) + 
  scale_y_continuous(breaks = seq(0, 5000, by = 250)) +
  labs(
    title = paste("Working rate according to Skill Moves of the playres"),
    subtitle = paste("--separatly preferred foot"),
     y = "Players"
  ) +
  coord_flip() +
  theme_grey()

According to those bar plots we can say most of players belong to 2nd skill move category and they have medium/medium working rate and same as the both type of foots.

Wages paying of clubs (by EURO *K)

There are lots of number of football clubs around the world and lot of players are given very big wage for playing under that clubs. According to these data collection we can carry out our wage analytics as this.

wagess <- read_csv("Foot_Ball.csv", col_types = cols(Wage = col_number()))
(wag_clubs <- wagess %>%
  count(Club, wt = Wage))
## # A tibble: 652 x 2
##    Club                        n
##    <chr>                   <dbl>
##  1 "?l?sk Wroc?aw"            50
##  2 "\xc7aykur Rizespor"      193
##  3 "\xd6rebro SK"             40
##  4 "\xd6stersunds FK"         45
##  5 "1. FC Heidenheim 1846"   125
##  6 "1. FC K\xf6ln"           372
##  7 "1. FC Kaiserslautern"     44
##  8 "1. FC Magdeburg"         127
##  9 "1. FC N\xfcrnberg"       309
## 10 "1. FC Union Berlin"      382
## # ... with 642 more rows

Higher wages paying clubs (more than EURO2500K)

So out of those 652 clubs we can explicit several clubs which wages are given more than euro 2500K.

(wag_clubs <- wagess %>%
  count(Club, wt = Wage, sort = TRUE) %>%
  filter(n>2500))
## # A tibble: 9 x 2
##   Club                  n
##   <chr>             <dbl>
## 1 Real Madrid        5017
## 2 FC Barcelona       4837
## 3 Manchester City    3741
## 4 Manchester United  3391
## 5 Juventus           3292
## 6 Chelsea            3249
## 7 Liverpool          2902
## 8 Tottenham Hotspur  2623
## 9 Arsenal            2588
ggplot(wag_clubs, aes(fct_reorder(Club, n), y = n)) +
  geom_bar(stat = "identity", fill = "lime green") +
  geom_text(aes(label = n), stat = "identity", vjust = 3) +
  labs(
    title = paste("Higher wages paying clubs (more than $2500K)"),
    y = "Wages (EURO *K)", x = "Clubs" ) +
  coord_polar()+
  theme_gray()

Basically we can identify 9 clubs which paying more than euro 2500K for a player. From this output graph we have "Real Madrid" & "FC Barcelona" which is has most wages for the players. That is euro5017K & euro 4837K respectively.

Best ratings of Goal Keeping Performance of players

In here we can identify some of several skills of goal keeping which as, diving, handling, kicking, positioning & reflexes.

(df_gk <- wagess %>%
  filter(GKDiving >= 80, 
         GKHandling >= 80, 
         GKKicking >= 80, 
         GKPositioning >= 80, 
         GKReflexes >= 80
         ) %>%
  select(Name, 
         Nationality,
         GKDiving,
         GKHandling,
         GKKicking,
         GKPositioning,
         GKReflexes,
         Wage
         ))
## # A tibble: 7 x 8
##   Name  Nationality GKDiving GKHandling GKKicking GKPositioning GKReflexes  Wage
##   <chr> <chr>          <dbl>      <dbl>     <dbl>         <dbl>      <dbl> <dbl>
## 1 De G~ Spain             90         85        87            88         94   260
## 2 M. t~ Germany           87         85        88            85         90   240
## 3 M. N~ Germany           90         86        91            87         87   130
## 4 Eder~ Brazil            85         80        91            82         87   125
## 5 Alis~ Brazil            83         81        85            84         88   115
## 6 T. H~ Germany           83         80        83            82         86    25
## 7 Pepe~ Spain             80         83        82            82         82    56

From the above content that have three from Germany and two from Brazil & Spain all together 7 players. The wages which are paid to them also represent in the last column.

names <- rep(df_gk[[1]], times = 5)
nationalities <- rep(df_gk[[2]], times = 5)
figures <- rep(
  c("GKDiving", "GKHandling", "GKKicking", "GKPositioning", "GKReflexes"),
  each = 7
)
ratings_gk <- c(df_gk$GKDiving, df_gk$GKHandling, df_gk$GKKicking, df_gk$GKPositioning,
             df_gk$GKReflexes)

new_df_gk <- data.frame(names, nationalities, figures, ratings_gk)

ggplot(new_df_gk, aes(x = names, y = ratings_gk, fill = figures)) +
  geom_bar(stat = "identity", position = "dodge", width = 1) +
  scale_fill_manual(values = rainbow(5))+
  geom_text(new_df_gk, mapping = aes(label = ratings_gk), 
            stat = "identity", position_dodge(width = 1), hjust = 1) +
  facet_grid(~nationalities) + 
  scale_y_continuous(breaks = seq(0, 100, by = 10)) +
  labs(
    title = paste("Best figures of Goal Keeping Performance of players"),
    y = "Performance Ratings", x = "Player")+
  coord_polar()

Best ratings of shots Performance of players

In this game we can see lot of shots variations from players. That shots styles tell us how they influence to the player and also wining of the team. In here this data collections carry out some basic shots selections which are heading accuracy, long and shot passing, long shots and the shot power.

(df_shots <- df %>%
  filter(HeadingAccuracy >= 75, ShortPassing >=80,
         LongPassing >= 80, LongShots >= 80, ShotPower >=80) %>%
  select( Name, Nationality, Position, Club, HeadingAccuracy, ShortPassing,
          LongPassing, LongShots, ShotPower))
##                  Name Nationality Position                           Club
## 1             H. Kane     England       ST              Tottenham Hotspur
## 2             G. Bale       Wales       ST                    Real Madrid
## 3 S. Milinkovi?-Savi?      Serbia       CM                          Lazio
## 4            D. Alaba     Austria       LB              FC Bayern München
## 5            Paulinho      Brazil      LDM Guangzhou Evergrande Taobao FC
## 6          C. Tolisso      France       CM              FC Bayern München
## 7           M. Parolo       Italy      RDM                          Lazio
## 8           W. Rooney     England       ST                      DC United
##   HeadingAccuracy ShortPassing LongPassing LongShots ShotPower
## 1              85           80          82        85        88
## 2              84           85          80        91        92
## 3              86           85          85        80        83
## 4              75           82          80        82        83
## 5              85           84          80        80        83
## 6              82           84          86        81        82
## 7              75           80          83        86        87
## 8              75           81          82        80        85

We can see difference positions of players which related to this shots accuracy ratings and also difference football clubs which related to these top 8 players.

names_st <- rep(df_shots[[1]], times = 5)
nationalities_st <- rep(df_shots[[2]], times = 5)
position <- rep(df_shots[[3]], times = 5)
clubs <- rep(df_shots[[4]], times = 5)
rates <- rep(
  c("HeadingAccuracy", "ShortPassing", "LongPassing", "LongShots", "ShotPower"),
  each = 8  )
ratings_st <- c(df_shots$HeadingAccuracy, df_shots$ShortPassing, 
                df_shots$LongPassing, df_shots$LongShots, df_shots$ShotPower)

new_df_shots <- data.frame(names_st, nationalities_st, 
                           position, clubs, rates, ratings_st)

ggplot(new_df_shots, aes(x = names_st, y = ratings_st, fill = rates))+
  geom_bar(stat = "identity", position = "dodge") +
  scale_fill_manual(values = c("HeadingAccuracy" = "maroon1",
                               "ShortPassing" = "mediumorchid3",
                               "LongPassing" = "steelblue4 ",
                               "LongShots" = "springgreen2",
                               'ShotPower' = "turquoise")) +
  geom_text(new_df_shots, mapping = aes(label = ratings_st), 
            stat = "identity", position_dodge(width = 1), hjust = 7) +
  facet_grid(~nationalities_st) + 
  scale_y_continuous(breaks = seq(0, 110, by = 10)) +
  labs(
    title = paste("Best ratings of shots Performance of players"),
    y = "Performance Ratings", x = "Player")+
  coord_flip()+
  theme_classic(base_size = 11, base_line_size = 0.8)

From the above content we can see how they vary from the difference nationalities.

Top ratings of Finishing, Penalties and FK Accuracy

When we are talking about the finishing, penalties and FK accuracy I thought that category ratings more influence to the winning of a team.

(df_rat <- df %>%
    filter(Finishing >= 80,Penalties >= 80, FKAccuracy >= 80) %>%
    select( Name, Nationality, Position, Club, Finishing, Penalties, FKAccuracy))
##              Name Nationality Position                Club Finishing Penalties
## 1       Neymar Jr      Brazil       LW Paris Saint-Germain        87        81
## 2       L. Suárez     Uruguay       RS        FC Barcelona        93        85
## 3  R. Lewandowski      Poland       ST   FC Bayern München        91        88
## 4       P. Dybala   Argentina       LF            Juventus        84        86
## 5    J. Rodríguez    Colombia      LAM   FC Bayern München        83        81
## 6      I. Rakiti?     Croatia      RCM        FC Barcelona        83        82
## 7         M. Reus     Germany       LM   Borussia Dortmund        87        89
## 8  Z. Ibrahimovi?      Sweden       RS           LA Galaxy        86        89
## 9     David Villa       Spain       ST    New York City FC        86        88
## 10      W. Rooney     England       ST           DC United        80        81
##    FKAccuracy
## 1          87
## 2          84
## 3          86
## 4          88
## 5          86
## 6          84
## 7          84
## 8          82
## 9          80
## 10         83

Ten players have the ratings above 80 scales for those components and we can see how they vary with nationalities and difference clubs and that players have some difference positions on the ground.

ggplot(df_rat) +
  geom_line(aes(fct_reorder(Name, Finishing), y = Finishing,group = 1, color = "Finishing"), size = 1) +
  geom_point(aes(x = Name, y = Finishing, color = "Finishing"), size = 8, stat = "identity") +
  geom_text(df_rat, mapping = aes(x = Name, y = Finishing, label = Finishing), 
            stat = "identity", hjust = 2) +
  geom_point(aes(x = Name, y = Penalties, color = "Penalties"), size = 5, stat = "identity")+
  geom_point(aes(x = Name, y = FKAccuracy, color = "FKAccuracy"), size = 5, stat = "identity") +
  scale_y_continuous(breaks = seq(80, 100, by = 1)) +
  labs(
    title = paste("Top ratings of Finishing, Penalties and FKAccuracy"),
    y = "Ratings", x = "Player" ) +
  theme_bw()

By plotting those things we can see how other ratings are changing from according to ascending order of finishing rate of the players.

Defensive Performance

In the football game the defensive is the main part of the roll. All crowds who love the football know how the defensing is value for the football. Here the data set collects the most valuable ratings related to the defensing. Aggression, Interceptions, Marking, Standing Tackle and Sliding Tackle ratings are discussed here.

(df_diff <- df %>%
    filter(Aggression >= 85, Interceptions >= 85, 
           Marking >= 85, StandingTackle >= 85, SlidingTackle >= 85) %>%
    select( Name, Nationality, Position, Club, Aggression, Interceptions, 
            Marking, StandingTackle, SlidingTackle))
##             Name Nationality Position              Club Aggression
## 1   Sergio Ramos       Spain      RCB       Real Madrid         88
## 2       D. Godín     Uruguay       CB   Atlético Madrid         89
## 3       N. Kanté      France      LDM           Chelsea         90
## 4   G. Chiellini       Italy      LCB          Juventus         92
## 5       Casemiro      Brazil      CDM       Real Madrid         87
## 6   K. Koulibaly     Senegal      LCB            Napoli         87
## 7     M. Benatia     Morocco       CB          Juventus         86
## 8     K. Manolas      Greece      LCB              Roma         86
## 9     J. Giménez     Uruguay      RCB   Atlético Madrid         89
## 10 Javi Martínez       Spain      CDM FC Bayern München         90
##    Interceptions Marking StandingTackle SlidingTackle
## 1             90      87             92            91
## 2             88      90             89            89
## 3             92      90             91            85
## 4             88      93             93            90
## 5             87      88             90            87
## 6             88      91             88            86
## 7             86      89             87            85
## 8             86      86             87            89
## 9             85      88             86            87
## 10            87      85             86            86

We can see from above contents the top orders who have high ratings to defensing. These ten players have different nationalities, clubs and different positions.

ggplot(df_diff, mapping = aes(fct_reorder(Name, Aggression), y = Aggression, group = 1)) +
  geom_point(aes(color = "Aggression"), size = 7) +
  geom_line(color = "red", size = 1) +
  geom_point(aes(x = Name, y = Interceptions, color = "Interceptions"), size = 4)+
  geom_point(aes(x = Name, y = Marking, shape = "Marking"), size = 5) +
  scale_y_continuous(breaks = seq(85, 100, by = 1)) +
  labs(
    title = paste("Top Defensive Performance"),
    subtitle = paste("-Aggression, Interceptions & Marking"),
    y = "Ratings", x = "Player" ) +
  theme_linedraw() +
  coord_polar()

Aggression, Interceptions and Marking skills are most important ratings of the defensing. We can see vary appearance of these ratings in order to ascending order of Aggression skill.

Tackling performance

ggplot(df_diff) +
  geom_line(aes(fct_reorder(Name, StandingTackle), y = StandingTackle,group = 1, color = "StandingTackle"), size = 1) +
  geom_point(aes(fct_reorder(Name, StandingTackle), y = StandingTackle, color = "StandingTackle"), size = 3) +
  geom_line(aes(x = Name, y = SlidingTackle, group = 1,color = "SlidingTackle"), size = 1) +
  geom_point(aes(x = Name, y = SlidingTackle, color = "SlidingTackle"), size = 3) +
  scale_y_continuous(breaks = seq(85, 100, by = 1)) +
  labs(
    title = paste("Top Tuckling performance"),
    subtitle = paste("-Standing & Sliding"),
    y = "Ratings", x = "Player" ) +
  theme_linedraw() +
  coord_polar()

There are two tackle positions and we can see how the two ratings differ from other. The graph content based on to ascending order of standing tackle ratings.

Top common performance ratings of players

During analyzing those things I could catch some basic performance of players. Those are much valuable ratings for taking idea about how the players' performances are. Here I used mainly 75 scale (I used 70 scale for only Balance rating) marks to filter those rating when I select the top order players. It could be miss some good players because I tried to filter here those performance altogether.

(df_com <- df %>%
    filter(Volleys >= 75, Crossing >= 75, Curve >= 75, Dribbling >= 75, 
           BallControl >= 75, Acceleration >= 75, SprintSpeed >= 75, Agility >= 75,
           Reactions >= 75, Balance >= 70, 
           Positioning >= 75, Composure >= 75, Vision >= 75) %>%
    select( Name, Nationality, Club, Volleys, Crossing, Curve, Dribbling, 
            BallControl, Acceleration, SprintSpeed, Agility,
            Reactions, Balance, 
            Positioning, Composure, Vision))
##                 Name    Nationality                     Club Volleys Crossing
## 1           L. Messi      Argentina             FC Barcelona      86       84
## 2  Cristiano Ronaldo       Portugal                 Juventus      87       84
## 3          Neymar Jr         Brazil      Paris Saint-Germain      84       79
## 4       K. De Bruyne        Belgium          Manchester City      82       93
## 5          E. Hazard        Belgium                  Chelsea      80       81
## 6          L. Suárez        Uruguay             FC Barcelona      88       77
## 7          P. Dybala      Argentina                 Juventus      88       82
## 8       A. Griezmann         France          Atlético Madrid      87       82
## 9          K. Mbappé         France      Paris Saint-Germain      78       77
## 10          Coutinho         Brazil             FC Barcelona      75       79
## 11     P. Aubameyang          Gabon                  Arsenal      86       77
## 12           L. Sané        Germany          Manchester City      85       83
## 13     Douglas Costa         Brazil                 Juventus      76       84
## 14           M. Reus        Germany        Borussia Dortmund      90       79
## 15     Marco Asensio          Spain              Real Madrid      79       82
## 16          N. Fekir         France       Olympique Lyonnais      77       83
## 17        A. Sánchez          Chile        Manchester United      83       77
## 18   Bruno Fernandes       Portugal              Sporting CP      84       84
## 19            H. Son Korea Republic        Tottenham Hotspur      79       78
## 20        Iago Aspas          Spain                 RC Celta      83       80
## 21       A. Di María      Argentina      Paris Saint-Germain      77       83
## 22          Quaresma       Portugal              Be?ikta? JK      80       92
## 23         A. Robben    Netherlands        FC Bayern München      86       80
## 24        O. Dembélé         France             FC Barcelona      76       78
## 25   Ronaldo Cabrais         Brazil                   Grêmio      76       83
## 26          T. Lemar         France          Atlético Madrid      78       83
## 27          K. Coman         France        FC Bayern München      77       81
## 28        J. Draxler        Germany      Paris Saint-Germain      84       83
## 29     H. Mkhitaryan        Armenia                  Arsenal      81       77
## 30         F. Ribéry         France        FC Bayern München      79       80
## 31    G. Bonaventura          Italy                    Milan      78       82
## 32         N. Gaitán      Argentina         Dalian YiFang FC      81       80
## 33         L. Bailey        Jamaica      Bayer 04 Leverkusen      75       77
## 34           A. Plea         France Borussia Mönchengladbach      81       78
## 35         T. Hazard        Belgium Borussia Mönchengladbach      80       77
## 36           C. Vela         Mexico           Los Angeles FC      82       79
## 37         I. Traoré         Guinea Borussia Mönchengladbach      75       80
## 38        E. Lavezzi      Argentina   Hebei China Fortune FC      77       77
##    Curve Dribbling BallControl Acceleration SprintSpeed Agility Reactions
## 1     93        97          96           91          86      91        95
## 2     81        88          94           89          91      87        96
## 3     88        96          95           94          90      96        94
## 4     85        86          91           78          76      79        91
## 5     83        95          94           94          88      95        90
## 6     86        87          90           86          75      82        92
## 7     88        92          92           87          83      91        86
## 8     84        88          90           88          85      90        90
## 9     77        90          91           96          96      92        87
## 10    91        91          92           89          75      92        83
## 11    80        79          82           93          95      76        87
## 12    82        88          85           93          96      88        81
## 13    84        92          91           97          93      93        84
## 14    89        87          86           86          85      86        87
## 15    83        86          85           85          82      79        82
## 16    81        90          89           79          79      90        80
## 17    79        87          86           86          79      90        83
## 18    85        83          85           79          76      77        84
## 19    81        88          85           88          87      82        84
## 20    80        86          85           85          78      87        85
## 21    84        86          85           85          84      92        80
## 22    94        89          88           84          82      91        78
## 23    90        89          88           83          76      87        85
## 24    78        90          83           93          92      90        82
## 25    86        85          83           88          87      85        84
## 26    85        85          86           86          84      87        80
## 27    84        88          83           95          93      87        81
## 28    78        88          89           78          77      80        83
## 29    83        84          86           84          78      87        79
## 30    83        84          87           78          78      84        83
## 31    78        83          85           75          77      77        82
## 32    88        84          83           84          79      87        82
## 33    77        86          82           94          90      86        80
## 34    78        78          79           78          77      79        81
## 35    83        85          83           86          77      91        81
## 36    81        83          83           78          80      81        78
## 37    85        85          80           89          79      93        80
## 38    83        82          83           85          83      87        81
##    Balance Positioning Composure Vision
## 1       95          94        96     94
## 2       70          95        95     82
## 3       84          89        94     87
## 4       77          87        88     94
## 5       94          87        91     89
## 6       83          92        85     84
## 7       85          84        84     87
## 8       80          91        87     83
## 9       83          88        86     82
## 10      93          84        85     90
## 11      70          90        86     77
## 12      81          84        78     82
## 13      91          76        84     84
## 14      81          88        84     86
## 15      76          82        83     84
## 16      91          81        89     81
## 17      87          84        84     82
## 18      78          79        83     86
## 19      76          85        82     80
## 20      74          86        85     75
## 21      77          82        82     82
## 22      84          78        80     84
## 23      90          84        85     80
## 24      85          79        75     84
## 25      76          82        81     83
## 26      86          77        80     85
## 27      84          79        75     75
## 28      75          79        83     84
## 29      85          82        76     84
## 30      90          77        85     84
## 31      77          78        82     82
## 32      81          77        80     82
## 33      84          80        75     77
## 34      78          83        76     78
## 35      83          81        76     80
## 36      81          81        80     81
## 37      94          76        79     76
## 38      85          82        78     83

In here we can filter 38 players who have top marks of these ratings altogether. If a player has one type of rating is high that player is note here. These all 38 players have all performances more than 75 scale. Here I selected Vision, Volleys, Crossing, Curve and Dribbling ratings for build some visualization. This scatter plot carry out according to ascending order of the Vision rating of the player.

ggplot(df_com) +
  geom_line(aes(fct_reorder(Name, Vision), y = Vision,group = 1, shape = "Vision"), size = 1) +
  geom_point(aes(fct_reorder(Name, Vision), y = Vision, shape = "Vision"), size = 3) +
  geom_point(aes(x = Name, y = Volleys, color = "Volleys"), size = 3) +
  geom_point(aes(x = Name, y = Crossing, color = "Crossing"), size = 3) +
  geom_point(aes(x = Name, y = Curve, color = "Curve"), size = 3) +
  geom_point(aes(x = Name, y = Dribbling, color = "Dribbling"), size = 5) +
  scale_y_continuous(breaks = seq(75, 100, by = 1)) +
  labs(
    title = paste("Top common performance ratings of players"),
    subtitle = paste("-Vision, Volleys, Crossing, Curve, Dribbling"),
    y = "Ratings", x = "Player" ) +
  theme_get() +
  coord_flip()