1
1
import matplotlib .pyplot as plt
2
2
import pandas as pd
3
3
4
- def plot_comparison (dataset_1 , dataset_2 , title , legend_1 , legend_2 , output_file ):
4
+ def plot_comparison_set_counts (dataset_1 , dataset_2 , title , legend_1 , legend_2 , output_file ):
5
5
dataset_1_local = pd .read_csv (f"{ dataset_1 } _subpop_set_counts.csv" , index_col = 0 )
6
6
dataset_2_local = pd .read_csv (f"{ dataset_2 } _subpop_set_counts.csv" , index_col = 0 )
7
7
dataset_1_global = pd .read_csv (f"{ dataset_1 } _metapop_set_counts.csv" , index_col = 0 )
@@ -28,10 +28,48 @@ def plot_comparison(dataset_1, dataset_2, title, legend_1, legend_2, output_file
28
28
plt .savefig (output_file )
29
29
30
30
31
+ def plot_comparison_gini (dataset_1 , dataset_2 , title , legend_1 , legend_2 , output_file ):
32
+ dataset_1_local = pd .read_csv (f"{ dataset_1 } _subpop_gini.csv" , index_col = 0 )
33
+ dataset_2_local = pd .read_csv (f"{ dataset_2 } _subpop_gini.csv" , index_col = 0 )
34
+ dataset_1_global = pd .read_csv (f"{ dataset_1 } _metapop_gini.csv" , index_col = 0 )
35
+ dataset_2_global = pd .read_csv (f"{ dataset_2 } _metapop_gini.csv" , index_col = 0 )
31
36
32
- def metapopulation_plot_comparison (dataset_1 , dataset_2 , title , legend_1 , legend_2 , output_file , dataset_3 = None , legend_3 = None ):
33
- dataset_1_global = pd .read_csv (f"{ dataset_1 } _metapop_set_counts.csv" , index_col = 0 )
34
- dataset_2_global = pd .read_csv (f"{ dataset_2 } _metapop_set_counts.csv" , index_col = 0 )
37
+ plt .plot (dataset_1_local .mean (axis = 1 ), color = 'xkcd:sky blue' )
38
+ plt .plot (dataset_1_global .mean (axis = 1 ), color = 'xkcd:blue' )
39
+ plt .plot (dataset_2_local .mean (axis = 1 ), color = 'tan' )
40
+ plt .plot (dataset_2_global .mean (axis = 1 ), color = 'xkcd:puce' )
41
+
42
+ plt .fill_between (dataset_1_local .index , dataset_1_local .mean (axis = 1 ) - dataset_1_local .std (axis = 1 ), dataset_1_local .mean (axis = 1 ) + dataset_1_local .std (axis = 1 ), color = 'xkcd:sky blue' , alpha = 0.3 )
43
+ plt .fill_between (dataset_2_local .index , dataset_2_local .mean (axis = 1 ) - dataset_2_local .std (axis = 1 ), dataset_2_local .mean (axis = 1 ) + dataset_2_local .std (axis = 1 ), color = 'tan' , alpha = 0.3 )
44
+ plt .fill_between (dataset_1_global .index , dataset_1_global .mean (axis = 1 ) - dataset_1_global .std (axis = 1 ), dataset_1_global .mean (axis = 1 ) + dataset_1_global .std (axis = 1 ), color = 'xkcd:blue' , alpha = 0.3 )
45
+ plt .fill_between (dataset_2_global .index , dataset_2_global .mean (axis = 1 ) - dataset_2_global .std (axis = 1 ), dataset_2_global .mean (axis = 1 ) + dataset_2_global .std (axis = 1 ), color = 'xkcd:puce' , alpha = 0.3 )
46
+
47
+ plt .axvline (500 , color = "black" , linestyle = '--' , ymax = 1 )
48
+
49
+ plt .legend ([f"{ legend_1 } subpop avg" , f"{ legend_1 } whole metapop" , f"{ legend_2 } subpop avg" , f"{ legend_2 } whole metapop" ])
50
+ plt .ylabel ("Number of feature sets" )
51
+ plt .xlabel ("Generations (x100)" )
52
+ plt .grid (linestyle = ':' , linewidth = 0.5 )
53
+ plt .title (title )
54
+
55
+ plt .savefig (output_file )
56
+
57
+
58
+ def metapopulation_plot_comparison (dataset_1 , dataset_2 , title , legend_1 , legend_2 , output_file , what_measure , dataset_3 = None , legend_3 = None ):
59
+ if what_measure == 'set_counts' :
60
+ dataset_1_global = pd .read_csv (f"{ dataset_1 } _metapop_set_counts.csv" , index_col = 0 )
61
+ dataset_2_global = pd .read_csv (f"{ dataset_2 } _metapop_set_counts.csv" , index_col = 0 )
62
+ elif what_measure == 'shannon' :
63
+ dataset_1_global == pd .read_csv (f"{ dataset_1 } _metapop_shannon.csv" , index_col = 0 )
64
+ dataset_2_global = pd .read_csv (f"{ dataset_2 } _metapop_shannon.csv" , index_col = 0 )
65
+ elif what_measure == 'simpson' :
66
+ dataset_1_global = pd .read_csv (f"{ dataset_1 } _metapop_simpson.csv" , index_col = 0 )
67
+ dataset_2_global = pd .read_csv (f"{ dataset_2 } _metapop_simpson.csv" , index_col = 0 )
68
+ elif what_measure == 'gini' :
69
+ dataset_1_global = pd .read_csv (f"{ dataset_1 } _metapop_gini.csv" , index_col = 0 )
70
+ dataset_2_global = pd .read_csv (f"{ dataset_2 } _metapop_gini.csv" , index_col = 0 )
71
+ else :
72
+ print ("You need to decide what measure you will plot: 'set_counts', 'shannon', 'simpson' or 'gini'?" )
35
73
36
74
plt .plot (dataset_1_global .mean (axis = 1 ), color = 'xkcd:blue' )
37
75
plt .plot (dataset_2_global .mean (axis = 1 ), color = 'xkcd:puce' )
@@ -42,6 +80,7 @@ def metapopulation_plot_comparison(dataset_1, dataset_2, title, legend_1, legend
42
80
plt .axvline (500 , color = "black" , linestyle = '--' , ymax = 1 )
43
81
44
82
if dataset_3 is not None :
83
+ # TODO FIX HERE
45
84
dataset_3_global = pd .read_csv (f"{ dataset_3 } _metapop_set_counts.csv" , index_col = 0 )
46
85
plt .plot (dataset_3_global .mean (axis = 1 ), color = 'xkcd:light purple' )
47
86
plt .fill_between (dataset_3_global .index , dataset_3_global .mean (axis = 1 ) - dataset_3_global .std (axis = 1 ), dataset_3_global .mean (axis = 1 ) + dataset_3_global .std (axis = 1 ), color = 'xkcd:light purple' , alpha = 0.3 )
0 commit comments