Полосовой график как с категориальной, так и с числовой осью

#r #ggplot2 #plot #categorical-data

Вопрос:

Я хотел бы создать полосовой сюжет. В приведенном ниже примере я хотел бы иметь категории role по оси x и числовые значения df_roles по оси y. Мой ожидаемый результат-построить страны на диаграмме рассеяния соответственно с метками. Я пытался

 ggplot(data = df_roles)  
  aes(y = role, x = df_roles$role)  
  geom_sina(col=rgb(0,100,0,100,maxColorValue = 255), pch=16)  
  coord_flip()
 

который правильно отображает df_roles$role на оси x, но не отображает правильные числовые значения role ни по оси y, ни по ее данным.
введите описание изображения здесь

Вот минимальный воспроизводимый пример:

 role <- structure(list(`table$Result` = c(-0.387885046920444, -0.0310055313205592, 
                                          -0.204889810050621, -0.253526220213959, -0.36885965422865, 1.20966176495043
)), row.names = c("Afghanistan", "Albania", "Algeria", "Angola", 
                  "Antigua and Barbuda", "Argentina"), class = "data.frame")


df_roles <- structure(list(name = structure(c(171L, 133L, 26L, 16L, 49L, 
                                         5L), .Label = c("Afghanistan", "Albania", "Algeria", "Angola", 
                                                         "Antigua and Barbuda", "Argentina", "Armenia", "Australia", "Austria", 
                                                         "Azerbaijan", "Bahrain", "Bangladesh", "Barbados", "Belarus", 
                                                         "Belgium", "Belize", "Benin", "Bhutan", "Bolivia (Plurinational State of)", 
                                                         "Bosnia and Herzegovina", "Botswana", "Brazil", "Brunei Darussalam", 
                                                         "Bulgaria", "Burkina Faso", "Burundi", "Côte d'Ivoire", "Cambodia", 
                                                         "Cameroon", "Canada", "Central African Republic", "Chad", "Chile", 
                                                         "China, Hong Kong SAR", "China, Macao SAR", "China, mainland", 
                                                         "China, Taiwan Province of", "Colombia", "Congo", "Costa Rica", 
                                                         "Croatia", "Cuba", "Cyprus", "Czechia", "Democratic People's Republic of Korea", 
                                                         "Democratic Republic of the Congo", "Denmark", "Dominica", "Dominican Republic", 
                                                         "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", 
                                                         "Estonia", "Eswatini", "Ethiopia", "Finland", "France", "Gabon", 
                                                         "Gambia", "Georgia", "Germany", "Ghana", "Greece", "Grenada", 
                                                         "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Honduras", 
                                                         "Hungary", "India", "Indonesia", "Iran (Islamic Republic of)", 
                                                         "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", 
                                                         "Kazakhstan", "Kenya", "Kuwait", "Kyrgyzstan", "Lao People's Democratic Republic", 
                                                         "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Lithuania", 
                                                         "Luxembourg", "Madagascar", "Malawi", "Malaysia", "Mali", "Malta", 
                                                         "Mauritania", "Mexico", "Mongolia", "Montenegro", "Morocco", 
                                                         "Mozambique", "Myanmar", "Namibia", "Nepal", "Netherlands", "New Zealand", 
                                                         "Nicaragua", "Niger", "Nigeria", "North Macedonia", "Norway", 
                                                         "Oman", "Pakistan", "Palestine", "Panama", "Papua New Guinea", 
                                                         "Paraguay", "Peru", "Philippines", "Poland", "Portugal", "Qatar", 
                                                         "Republic of Korea", "Republic of Moldova", "Romania", "Russian Federation", 
                                                         "Rwanda", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent and the Grenadines", 
                                                         "Saudi Arabia", "Senegal", "Serbia", "Sierra Leone", "Singapore", 
                                                         "Slovakia", "Somalia", "South Africa", "Spain", "Sri Lanka", 
                                                         "Sudan", "Suriname", "Sweden", "Switzerland", "Syrian Arab Republic", 
                                                         "Tajikistan", "Thailand", "Timor-Leste", "Togo", "Trinidad and Tobago", 
                                                         "Tunisia", "Turkey", "Turkmenistan", "Uganda", "Ukraine", "United Arab Emirates", 
                                                         "United Kingdom of Great Britain and Northern Ireland", "United Republic of Tanzania", 
                                                         "United States of America", "Uruguay", "Uzbekistan", "Vanuatu", 
                                                         "Venezuela (Bolivarian Republic of)", "Viet Nam", "Yemen", "Zambia", 
                                                         "Zimbabwe"), class = "factor"), connectivity = c(-1.22474487139159, 
                                                                                                          -1.05309190650219, -1.05309190650219, -0.928012024886989, -0.928012024886989, 
                                                                                                          -0.829934222014463), participation = c(0.75, 0.5, 0.56, 0.5, 
                                                                                                                                                 0.65625, 0.444444444444444), role = structure(c(3L, 2L, 2L, 2L, 
                                                                                                                                                                                                 3L, 2L), .Label = c("Ultra peripheral", "Peripheral", "Connector", 
                                                                                                                                                                                                                     "Kinless", "Peripheral Hub", "Connector Hub", "Kinless Hub"), class = c("ordered", 
                                                                                                                                                                                                                                                                                             "factor"))), row.names = c(171L, 133L, 26L, 16L, 49L, 5L), class = "data.frame")