Точность графика, напомним, значения f1 для разных моделей - PullRequest
0 голосов
/ 10 июля 2019

У меня есть таблица, подобная приведенной ниже:

        A1  A2  A3
Tree    Precision   0.4042553   0.9586207   0.9251701
    Recall      1   1   1
    F1          0.5757576   0.9788732   0.9611307
Radial  Precision   0.9166667   0.9030303   0.9006211
    Recall      0.2820513   1   1
    F1          0.4313725   0.9490446   0.9477124
Polynomial  Precision   0.7857143   0.9125  0.8875
    Recall      0.2820513   0.9798658   0.9793103
    F1          0.4150943   0.9449838   0.9311475

Я хочу построить эту таблицу таким образом, чтобы значения «точность», «отзыв» и «F1» находились на оси y, а «от А1 доА3 "находятся на оси х.Также хочу указать разные модели на сюжете.Есть идеи, как это сделать?

1 Ответ

1 голос
/ 11 июля 2019

Один из способов отображения вашего df с осями, как описано, вы можете использовать следующие диаграммы группирования :

# This is for setting up your dataframe, you already have this
A1 = c(0.4042553,0.9586207,0.9251701,1,1,1,0.5757576,0.9788732,0.9611307)
A2 = c(0.9166667,0.9030303,0.9006211,0.2820513,1,1,0.4313725,0.9490446,0.9477124)
A3 = c(0.7857143,0.9125,0.8875,0.2820513,0.9798658,0.9793103,0.4150943,0.9449838,0.9311475)
df =data.frame(A1,A2,A3)
colnames(df) = c("A1","A2","A3")
# The rownames are important for the following melt function below.
# The "_T", "_R" and "_P" in some names were inserted for variable differentiation.
rownames(df) = c("Tree Precision","Recall_T","F1_T","Radial Precision","Recall_R","F1_R","Polynomial Precision","Recall_P","F1_P")

После того, как df готов, изменение формыначинается:

df$vartag <- row.names(df) # Insertion of your rownames as extra column (vartag = variable_tag; but you can name it whatever you want
library(reshape2)          # For the melt function
library(ggplot2)           # For plotting
df.long <- melt(df, "vartag")
ggplot(df.long, aes(x=variable, y=value, fill=variable)) + 
  geom_bar(stat="identity", position="dodge") + 
  facet_wrap(~vartag, ncol=3)

В результате вы должны получить график 3х3 с тремя барами на каждом графике (см. ниже).Grouping barplot

Если вам нужно другое отображение ваших значений, посетите этот сайт , чтобы найти название нужной вам графики и отредактировать ее.ваш вопрос.

...