Saya mencoba mengurutkan grafik bar saya menggunakan pemesanan ulang tetapi, itu tidak berfungsi. Saya mendapatkan bar sebagai format yang tidak disortir. Kode yang saya gunakan, ggplot (top_sp_nb_precison_avg_long) + geom_bar (AES (x = pemesanan ulang (...

0
0Knowledge 5 April 2021, 20:26

1 menjawab

Jawaban Terbaik

Fungsi reorder() digunakan dengan cara itu melihat seluruh dataset sekaligus, sedangkan saya menduga Anda ingin menyusun ulang nama model dalam posisi X di setiap aspek di setiap segi. Untuk melakukan ini, Anda dapat menggunakan fungsi interaction() dengan variabel pengelompokan untuk dengan cepat membentuk subkelompok.

df <- transform(
  Top_SP_NB_Precison_Avg_long,
  group = reorder(interaction(Top_Percision, Model_Name, Dataset_Number), 
                  -Top_Value)
)

Satu-satunya penyesuaian yang harus Anda buat saat berliput adalah mengatur grup dengan benar di setiap geom. Juga, saya berasumsi Anda bermaksud mengatakan 'secara vertikal' alih-alih 'secara horizontal' untuk orientasi teks, karena saya tidak tahu bagaimana meninggalkan teks horizontal akan mengarah pada pelabelan yang lebih jelas.

library(ggplot2)

ggplot(df) + 
  geom_col(
    aes(x = Top_Percision,
        y = Top_Value, 
        fill= Model_Name,
        group = group), 
    position=position_dodge(width=1)
  ) + 
  geom_text(
    aes(Top_Percision, 
        Top_Value, label=paste0(Model_Name, ": ", round(Top_Value, digits = 2)), 
        group= group), 
    position=position_dodge(width=1), size=3, angle = 90, hjust = 1
  )+
  facet_grid( ~ Dataset_Number,
              labeller = labeller(Dataset_Number = function(x)paste0("Test Dataset ",x))) + 
  ggtitle("Percentage of Top 1, Top 2, and Top 5 for (Dataset 1: Disjoint and Dataset 2: Joint)") +
  theme(plot.title = element_text(hjust = 0.5))

enter image description here

0
teunbrand 5 April 2021, 18:02