Как нарисовать несколько переменных, используя geom_density в python? - PullRequest
0 голосов
/ 27 марта 2020

Я хочу нарисовать несколько переменных одновременно, используя ggplot. Когда у меня есть такой фрейм данных:

     var1
0   0.000000
1   0.000580
2   0.014093
3   0.006308
4   0.035340
5   0.030079
6   0.019650
7   0.004612
8   0.006717
9   0.004495
10  0.006914
11  0.025033
12  0.018640
13  0.005148
14  0.042937
15  0.000646
16  0.031688
17  0.034478
18  0.008652
19  0.073041
20  0.007408
21  0.011088
22  0.014753
23  0.018978
24  0.023279
25  0.008659
26  0.018774
27  0.001448
28  0.000000
29  0.000000
..       ...
31  0.000000
32  0.000359
33  0.001427
34  0.021291
35  0.015790
36  0.017623
37  0.018715
38  0.013631
39  0.009127
40  0.008828
41  0.071523
42  0.014293
43  0.029732
44  0.030551
45  0.000001
46  0.045070
47  0.007654
48  0.020186
49  0.019392
50  0.008233
51  0.003447
52  0.006014
53  0.008396
54  0.022711
55  0.026587
56  0.032793
57  0.009532
58  0.010530
59  0.000000
60  0.000000

с использованием

ggplot(dhh, aes(list(range(61)), 'var1')) + geom_density(stat='identity', fill='b') + theme(axis_text_x=element_blank(), axis_title_x=element_blank())

Соответствующий показатель будет: [1]: https://i.stack.imgur.com/pvqLe.png. Но на самом деле мой фрейм данных имеет вид:

    var1      var2   var3
0   0.000000  0.000000  0.008
1   0.000000  0.000580  0.010
2   0.000000  0.014093  0.010
3   0.020149  0.006308  0.017
4   0.010204  0.035340  0.018
5   0.003144  0.030079  0.010
6   0.066829  0.019650  0.014
7   0.000000  0.004612  0.014
8   0.057110  0.006717  0.014
9   0.024039  0.004495  0.013
10  0.000187  0.006914  0.024
11  0.013809  0.025033  0.015
12  0.011809  0.018640  0.012
13  0.000000  0.005148  0.014
14  0.010484  0.042937  0.013
15  0.000000  0.000646  0.015
16  0.016791  0.031688  0.008
17  0.016506  0.034478  0.012
18  0.005356  0.008652  0.068
19  0.090228  0.073041  0.012
20  0.003901  0.007408  0.010
21  0.008111  0.011088  0.018
22  0.042994  0.014753  0.017
23  0.012775  0.018978  0.023
24  0.021775  0.023279  0.016
25  0.000136  0.008659  0.009
26  0.001257  0.018774  0.013
27  0.000000  0.001448  0.005
28  0.000000  0.000000  0.005
29  0.000000  0.000000  0.127
..       ...       ...    ...
31  0.000000  0.000000  0.005
32  0.000000  0.000359  0.007
33  0.000000  0.001427  0.011
34  0.001373  0.021291  0.018
35  0.010063  0.015790  0.016
36  0.011733  0.017623  0.018
37  0.055123  0.018715  0.017
38  0.008757  0.013631  0.014
39  0.000000  0.009127  0.010
40  0.004821  0.008828  0.072
41  0.089307  0.071523  0.011
42  0.005356  0.014293  0.013
43  0.016506  0.029732  0.008
44  0.016791  0.030551  0.017
45  0.000000  0.000001  0.011
46  0.010484  0.045070  0.013
47  0.000000  0.007654  0.012
48  0.012010  0.020186  0.013
49  0.013608  0.019392  0.024
50  0.008298  0.008233  0.013
51  0.019540  0.003447  0.012
52  0.053498  0.006014  0.020
53  0.000000  0.008396  0.012
54  0.067327  0.022711  0.011
55  0.003333  0.026587  0.013
56  0.015559  0.032793  0.015
57  0.014106  0.009532  0.008
58  0.000000  0.010530  0.010
59  0.000000  0.000000  0.004
60  0.000000  0.000000  0.006

Как видно, у меня есть три переменные. Я хочу иметь сюжет всех их одновременно. Я пытался использовать функцию melt :

pd.melt (..., value_vars = ['var1', 'var2', 'var3'])

и затем с помощью fill=variable, но проблема в том, что число индексов объекта будет 182, и тогда я не смогу использовать list (range (61)). Я знаю, что list(range(182)) бесполезен, потому что он aws строит графики рядом друг с другом. Есть идея?

Tnx

...