In [1]:
import os
import datetime
import pandas as pd
import numpy as np
from scipy.stats import linregress
import seaborn as sns

import matplotlib.pyplot as plt
%matplotlib inline
from pylab import rcParams
rcParams['figure.figsize'] = 20, 16
plt.style.use('ggplot')


/usr/local/lib/python3.5/site-packages/matplotlib/__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.
  warnings.warn(self.msg_depr % (key, alt_key))

In [2]:
experiment_files = ['../results/2_output.csv', '../results/3_output.csv', '../results/4_output.csv', '../results/1_output.csv']
hive_names = ['Cohort 1', 'Cohort 2', 'Normal Hive 1', 'Normal Hive 2']

experiment_df_list = []
for file in experiment_files:
    df = pd.read_csv(file, comment='#', header = 0)
    experiment_df_list.append(df)

print(experiment_df_list[0].dtypes)
print(experiment_df_list[0]['result_type'].unique())

experiment_df_list[0]


day_num                                  int64
diff_mean_all_tracked_speeds           float64
diff_mean_clustering                   float64
diff_mean_density                      float64
diff_mean_min_tracked_speeds           float64
diff_mean_node_degree                  float64
diff_median_all_tracked_speeds         float64
diff_median_clustering                 float64
diff_median_density                    float64
diff_median_min_tracked_speeds         float64
diff_median_node_degree                float64
diff_spread_all_tracked_all_xy         float64
diff_spread_all_tracked_individuals    float64
diff_spread_min_tracked_all_xy         float64
diff_spread_min_tracked_individuals    float64
mean_all_tracked_speeds                float64
mean_clustering                        float64
mean_density                           float64
mean_min_tracked_speeds                float64
mean_node_degree                       float64
median_all_tracked_speeds              float64
median_clustering                      float64
median_density                         float64
median_min_tracked_speeds              float64
median_node_degree                     float64
result_type                             object
spread_all_tracked_all_xy              float64
spread_all_tracked_individuals         float64
spread_min_tracked_all_xy              float64
spread_min_tracked_individuals         float64
tag_type                                object
time_period                             object
dtype: object
['real']
Out[2]:
day_num diff_mean_all_tracked_speeds diff_mean_clustering diff_mean_density diff_mean_min_tracked_speeds diff_mean_node_degree diff_median_all_tracked_speeds diff_median_clustering diff_median_density diff_median_min_tracked_speeds ... median_density median_min_tracked_speeds median_node_degree result_type spread_all_tracked_all_xy spread_all_tracked_individuals spread_min_tracked_all_xy spread_min_tracked_individuals tag_type time_period
0 0 3.020365 0.139732 0.010358 3.062317 2.012730 3.269409 0.150109 0.010139 3.298449 ... 0.037338 3.807887 5.172932 real 10.944326 11.405257 10.910378 11.054341 0 night
1 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.027199 7.106335 2.835658 real 9.933599 10.153356 9.908420 9.772973 0 day
2 0 4.302984 0.139732 0.010358 4.302157 2.012730 4.320457 0.150109 0.010139 4.272902 ... 0.037338 3.162278 5.172932 real 9.590282 9.776511 9.589640 9.767503 1 night
3 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.027199 7.435179 2.835658 real 8.905367 8.915304 8.906722 8.923107 1 day
4 0 3.200401 0.139732 0.010358 3.183804 2.012730 3.611718 0.150109 0.010139 3.611718 ... 0.037338 4.527693 5.172932 real 10.641876 10.419949 10.643430 10.433664 2 night
5 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.027199 8.139410 2.835658 real 9.662102 9.422465 9.662725 9.401503 2 day
6 0 NaN 0.139732 0.010358 NaN 2.012730 NaN 0.150109 0.010139 NaN ... 0.037338 NaN 5.172932 real NaN NaN NaN NaN 3 night
7 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.027199 2.121320 2.835658 real 6.621447 10.270627 6.621447 10.270627 3 day
8 0 3.727570 0.139732 0.010358 3.732812 2.012730 3.911097 0.150109 0.010139 3.911097 ... 0.037338 3.605551 5.172932 real 10.184953 10.469189 10.174605 10.311756 All night
9 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.027199 7.516648 2.835658 real 9.319706 9.397101 9.311868 9.256276 All day
10 1 0.180877 0.019281 0.006529 0.176436 0.647154 0.495588 0.004008 0.006240 0.489771 ... 0.023402 7.615773 3.834699 real 10.598514 10.426113 10.590778 10.240150 0 night
11 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.029642 7.126002 4.296230 real 11.510337 11.393491 11.488657 11.095055 0 day
12 1 0.391737 0.019281 0.006529 0.392991 0.647154 0.351875 0.004008 0.006240 0.399451 ... 0.023402 7.662806 3.834699 real 9.866736 9.802738 9.869256 9.821369 1 night
13 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.029642 8.062258 4.296230 real 10.945738 10.786239 10.946354 10.787580 1 day
14 1 0.386386 0.019281 0.006529 0.386768 0.647154 0.328989 0.004008 0.006240 0.294916 ... 0.023402 8.200610 3.834699 real 10.244017 10.014877 10.247542 10.030547 2 night
15 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.029642 7.905694 4.296230 real 11.005531 10.394588 11.009112 10.403774 2 day
16 1 7.173228 0.019281 0.006529 7.184197 0.647154 9.270647 0.004008 0.006240 9.270647 ... 0.023402 11.963229 3.834699 real 4.959697 6.474755 4.959697 6.474755 3 night
17 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.029642 2.692582 4.296230 real 4.091650 6.578624 4.080599 6.517544 3 day
18 1 0.031370 0.019281 0.006529 0.034699 0.647154 0.037521 0.004008 0.006240 0.042318 ... 0.023402 7.826238 3.834699 real 10.127591 10.040519 10.124454 9.976552 All night
19 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.029642 7.783920 4.296230 real 11.104734 10.882603 11.096950 10.765507 All day
20 2 1.476368 0.033814 0.001895 1.430317 0.155465 0.644880 0.012187 0.001762 0.623651 ... 0.021879 6.714323 3.127250 real 12.124380 11.793368 12.109840 11.565154 0 night
21 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.023641 7.337974 3.193798 real 12.603079 11.852129 12.590489 11.544880 0 day
22 2 1.432139 0.033814 0.001895 1.426569 0.155465 0.820753 0.012187 0.001762 0.813177 ... 0.021879 7.433034 3.127250 real 11.116260 10.914650 11.117417 10.916593 1 night
23 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.023641 8.246211 3.193798 real 11.754959 11.196633 11.757346 11.199812 1 day
24 2 0.892494 0.033814 0.001895 0.882026 0.155465 0.200816 0.012187 0.001762 0.235964 ... 0.021879 7.396205 3.127250 real 11.118537 10.864544 11.119977 10.873770 2 night
25 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.023641 7.632169 3.193798 real 12.180309 11.066802 12.184447 11.065435 2 day
26 2 15.380707 0.033814 0.001895 15.380707 0.155465 14.458190 0.012187 0.001762 14.458190 ... 0.021879 1.581139 3.127250 real 5.054371 7.920408 5.054371 7.920408 3 night
27 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.023641 16.039329 3.193798 real 3.898892 5.251855 3.898892 5.251855 3 day
28 2 1.294042 0.033814 0.001895 1.279400 0.155465 0.685316 0.012187 0.001762 0.694592 ... 0.021879 7.211103 3.127250 real 11.333139 11.174720 11.323622 11.065927 All night
29 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.023641 7.905694 3.193798 real 12.077301 11.381253 12.069657 11.265147 All day
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
100 10 6.186321 0.154123 0.006434 6.211427 0.750754 5.148513 0.159426 0.006344 5.047521 ... 0.021728 1.916673 1.791937 real 13.062501 11.960098 13.062786 11.580179 0 night
101 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.015385 6.964194 1.036145 real 11.549604 10.553061 11.525733 9.894993 0 day
102 10 6.079822 0.154123 0.006434 6.089773 0.750754 5.446828 0.159426 0.006344 5.446828 ... 0.021728 2.692582 1.791937 real 12.079464 10.375817 12.083114 10.351453 1 night
103 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.015385 8.139410 1.036145 real 11.196035 9.324568 11.196142 9.274523 1 day
104 10 7.631335 0.154123 0.006434 7.654793 0.750754 7.662537 0.159426 0.006344 7.747926 ... 0.021728 3.664786 1.791937 real 11.194103 8.832069 11.208306 8.867001 2 night
105 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.015385 11.412712 1.036145 real 9.532381 8.401589 9.534618 8.385181 2 day
106 10 6.350063 0.154123 0.006434 6.333137 0.750754 2.787091 0.159426 0.006344 2.737400 ... 0.021728 1.118034 1.791937 real 8.142057 8.556568 8.142057 8.556568 3 night
107 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.015385 3.855434 1.036145 real 9.832152 9.069986 9.839440 9.110688 3 day
108 10 6.610898 0.154123 0.006434 6.634919 0.750754 6.307743 0.159426 0.006344 6.251690 ... 0.021728 2.692582 1.791937 real 12.042819 10.243681 12.041855 9.984304 All night
109 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.015385 8.944272 1.036145 real 10.759027 9.270865 10.748867 9.070946 All day
110 11 4.781399 0.139029 0.003198 4.887752 0.666223 4.457650 0.148610 0.003193 4.412419 ... 0.020365 2.005044 1.616438 real 12.160140 11.507672 12.136466 10.905387 0 night
111 11 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.017172 6.417462 0.947368 real 11.584201 10.631801 11.560362 9.992723 0 day
112 11 4.118025 0.139029 0.003198 4.129800 0.666223 3.160680 0.148610 0.003193 3.184129 ... 0.020365 3.616607 1.616438 real 10.663367 9.913219 10.661778 9.861452 1 night
113 11 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.017172 6.800735 0.947368 real 10.895677 8.892275 10.898149 8.872415 1 day
114 11 4.580569 0.139029 0.003198 4.578969 0.666223 4.030839 0.148610 0.003193 3.981114 ... 0.020365 3.535534 1.616438 real 11.394324 9.556425 11.395119 9.500502 2 night
115 11 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.017172 7.516648 0.947368 real 10.500232 8.335293 10.504135 8.312725 2 day
116 11 8.481458 0.139029 0.003198 8.496623 0.666223 5.576527 0.148610 0.003193 5.576527 ... 0.020365 1.118034 1.616438 real 9.550772 9.106693 9.553830 9.114354 3 night
117 11 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.017172 6.694561 0.947368 real 8.694261 8.271514 8.694261 8.271514 3 day
118 11 4.401962 0.139029 0.003198 4.427537 0.666223 3.816272 0.148610 0.003193 3.837722 ... 0.020365 3.162278 1.616438 real 11.335028 10.312483 11.325518 10.016210 All night
119 11 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.017172 7.000000 0.947368 real 10.903631 9.110554 10.896411 8.888340 All day
120 12 2.152171 0.242743 0.002873 2.291487 0.919879 1.532589 0.293333 0.003965 1.633120 ... 0.014706 2.853304 0.285714 real 11.019707 11.279847 10.936469 10.413383 0 night
121 12 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.018671 4.486424 1.292683 real 9.188244 10.822424 8.999552 10.418074 0 day
122 12 2.813723 0.242743 0.002873 2.807778 0.919879 2.339286 0.293333 0.003965 2.281896 ... 0.014706 2.061553 0.285714 real 11.001290 10.192147 11.002141 10.167470 1 night
123 12 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.018671 4.343448 1.292683 real 11.115571 10.935500 11.107546 10.839078 1 day
124 12 1.132534 0.242743 0.002873 1.142745 0.919879 1.958440 0.293333 0.003965 1.929368 ... 0.014706 3.041381 0.285714 real 9.944044 8.746046 9.945429 8.736809 2 night
125 12 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.018671 4.970749 1.292683 real 9.472682 9.281046 9.472812 9.287053 2 day
126 12 29.178998 0.242743 0.002873 29.178998 0.919879 34.692315 0.293333 0.003965 34.692315 ... 0.014706 1.118034 0.285714 real 8.337499 8.380266 8.337499 8.380266 3 night
127 12 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.018671 35.810349 1.292683 real 3.344322 3.271790 3.344322 3.271790 3 day
128 12 2.034245 0.242743 0.002873 2.050252 0.919879 2.216991 0.293333 0.003965 2.216991 ... 0.014706 2.500000 0.285714 real 10.798294 10.010503 10.789021 9.731230 All night
129 12 NaN NaN NaN NaN NaN NaN NaN NaN NaN ... 0.018671 4.716991 1.292683 real 10.369035 10.903431 10.344293 10.596636 All day

130 rows × 32 columns


In [3]:
real_result_df_list = []
for df in experiment_df_list:
    real_df = df[(df['result_type'] == 'real') & (df['tag_type'] == 'All')].reset_index()
    real_result_df_list.append(real_df)
    
real_result_df_list[0]


Out[3]:
index day_num diff_mean_all_tracked_speeds diff_mean_clustering diff_mean_density diff_mean_min_tracked_speeds diff_mean_node_degree diff_median_all_tracked_speeds diff_median_clustering diff_median_density ... median_density median_min_tracked_speeds median_node_degree result_type spread_all_tracked_all_xy spread_all_tracked_individuals spread_min_tracked_all_xy spread_min_tracked_individuals tag_type time_period
0 8 0 3.727570 0.139732 0.010358 3.732812 2.012730 3.911097 0.150109 0.010139 ... 0.037338 3.605551 5.172932 real 10.184953 10.469189 10.174605 10.311756 All night
1 9 0 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.027199 7.516648 2.835658 real 9.319706 9.397101 9.311868 9.256276 All day
2 18 1 0.031370 0.019281 0.006529 0.034699 0.647154 0.037521 0.004008 0.006240 ... 0.023402 7.826238 3.834699 real 10.127591 10.040519 10.124454 9.976552 All night
3 19 1 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.029642 7.783920 4.296230 real 11.104734 10.882603 11.096950 10.765507 All day
4 28 2 1.294042 0.033814 0.001895 1.279400 0.155465 0.685316 0.012187 0.001762 ... 0.021879 7.211103 3.127250 real 11.333139 11.174720 11.323622 11.065927 All night
5 29 2 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.023641 7.905694 3.193798 real 12.077301 11.381253 12.069657 11.265147 All day
6 38 3 0.100310 0.063870 0.000681 0.091905 0.416638 0.222089 0.073901 0.000587 ... 0.021135 6.305143 2.859239 real 10.820764 10.064677 10.820742 9.981054 All night
7 39 3 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.021723 6.082763 2.372549 real 11.075039 10.387023 11.068490 10.270358 All day
8 48 4 1.418010 0.017627 0.000873 1.382756 0.073361 0.575571 0.001756 0.000939 ... 0.020044 4.885284 2.746912 real 11.135516 10.373976 11.135168 10.288457 All night
9 49 4 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.019104 5.436441 2.625954 real 11.021027 10.596527 11.006094 10.436244 All day
10 58 5 2.131969 0.050153 0.001406 2.123229 0.360557 1.191967 0.063824 0.001343 ... 0.020721 4.080815 2.488539 real 11.210403 10.876123 11.200470 10.701018 All night
11 59 5 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.019378 5.315073 2.059703 real 10.971206 10.136349 10.958798 9.980513 All day
12 68 6 2.390443 0.041880 0.000360 2.400184 0.229969 1.672634 0.044231 0.000105 ... 0.019048 3.640055 2.095238 real 12.016367 11.404208 12.006137 11.178519 All night
13 69 6 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.018942 5.385165 1.854545 real 11.574726 9.872526 11.569398 9.704641 All day
14 78 7 4.087537 0.076826 0.000865 4.138952 0.368612 3.409079 0.069998 0.000836 ... 0.018700 2.906888 1.880000 real 12.765470 11.816743 12.758971 11.598293 All night
15 79 7 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.019536 6.264982 1.555556 real 11.730942 9.878437 11.726003 9.722188 All day
16 88 8 3.223703 0.103037 0.001432 3.282759 0.501304 2.463223 0.094882 0.001374 ... 0.018825 3.605551 1.645570 real 12.576696 11.456850 12.576951 11.234677 All night
17 89 8 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.017451 6.082763 1.200000 real 11.561709 9.774157 11.551448 9.542956 All day
18 98 9 5.212056 0.083623 0.003285 5.243538 0.459514 4.670832 0.093870 0.003324 ... 0.021505 1.957882 1.854167 real 12.569939 10.812795 12.576334 10.611415 All night
19 99 9 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.018182 6.628725 1.324324 real 11.384044 9.608958 11.374145 9.387318 All day
20 108 10 6.610898 0.154123 0.006434 6.634919 0.750754 6.307743 0.159426 0.006344 ... 0.021728 2.692582 1.791937 real 12.042819 10.243681 12.041855 9.984304 All night
21 109 10 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.015385 8.944272 1.036145 real 10.759027 9.270865 10.748867 9.070946 All day
22 118 11 4.401962 0.139029 0.003198 4.427537 0.666223 3.816272 0.148610 0.003193 ... 0.020365 3.162278 1.616438 real 11.335028 10.312483 11.325518 10.016210 All night
23 119 11 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.017172 7.000000 0.947368 real 10.903631 9.110554 10.896411 8.888340 All day
24 128 12 2.034245 0.242743 0.002873 2.050252 0.919879 2.216991 0.293333 0.003965 ... 0.014706 2.500000 0.285714 real 10.798294 10.010503 10.789021 9.731230 All night
25 129 12 NaN NaN NaN NaN NaN NaN NaN NaN ... 0.018671 4.716991 1.292683 real 10.369035 10.903431 10.344293 10.596636 All day

26 rows × 33 columns


In [4]:
extended_metrics = ['mean_all_tracked_speeds', 'mean_min_tracked_speeds', 'median_all_tracked_speeds', 'median_min_tracked_speeds', 'spread_all_tracked_all_xy', 'spread_all_tracked_individuals', 'spread_min_tracked_all_xy', 'spread_min_tracked_individuals']
metrics_names = ['Mean Speed All Bees Tracked', 'Mean Speed Filtered Bees', 'Median Speed All Bees Tracked', 'Median Speed Filtered Bees', 'Spread All Bees All Coordinates', 'Spread All Bees Individuals', 'Spread Filtered Bees All Coordinates', 'Spread Filtered Bees Individuals']

for k, metric in enumerate(extended_metrics):

    for i, df in enumerate(real_result_df_list):
        plt.plot(df[metric][0:25], marker='o', label='{}'.format(hive_names[i]))
    plt.title(metrics_names[k])
    plt.xlabel('Days')
    plt.xlim(-0.5,24.5)
    x_len = len(df[metric][0:25])
    day_nums = []
    [day_nums.extend(['', ii + 1]) for ii in range(int(x_len / 2))]
    plt.xticks(range(x_len), day_nums)
    
    plt.legend(loc='lower left')

    for j, time_period in enumerate(real_result_df_list[0]['time_period'][0:25]):
        if time_period == 'night':
            plt.axvspan(j - 0.5, j + 0.5, facecolor='b', alpha=0.1, edgecolor='none')
        else:
            plt.axvspan(j - 0.5, j + 0.5, facecolor='y', alpha=0.1, edgecolor='none')
    plt.show()



In [5]:
for i, df in enumerate(real_result_df_list):
    
    x_len = 24
    day_nums = []
    [day_nums.extend(['', ii + 1]) for ii in range(int(x_len / 2))]
    
    
    plt.plot(df['mean_node_degree'][0:25], marker='o', label='{} {}'.format(hive_names[i], 'mean node degree'))
    plt.plot(df['median_node_degree'][0:25], marker='o', label='{} {}'.format(hive_names[i], 'median node degree'))
    plt.title('{} Node Degree'.format(hive_names[i]))
    plt.xlabel('Days')
    plt.xticks(range(x_len), day_nums)
    plt.xlim(-0.5,24.5)
    plt.legend(loc='upper right')
    for j, time_period in enumerate(real_result_df_list[0]['time_period'][0:25]):
        if time_period == 'night':
            plt.axvspan(j - 0.5, j + 0.5, facecolor='b', alpha=0.1, edgecolor='none')
        else:
            plt.axvspan(j - 0.5, j + 0.5, facecolor='y', alpha=0.1, edgecolor='none')
    plt.show()
    
    
    plt.plot(df['mean_density'][0:25], marker='o', label='{} {}'.format(hive_names[i], 'mean density'))
    plt.plot(df['median_density'][0:25], marker='o', label='{} {}'.format(hive_names[i], 'median density'))
    plt.title('{} Node Density'.format(hive_names[i]))
    plt.xlabel('Days')
    plt.xticks(range(x_len), day_nums)
    plt.xlim(-0.5,24.5)
    plt.legend(loc='upper right')
    for j, time_period in enumerate(real_result_df_list[0]['time_period'][0:25]):
        if time_period == 'night':
            plt.axvspan(j - 0.5, j + 0.5, facecolor='b', alpha=0.1, edgecolor='none')
        else:
            plt.axvspan(j - 0.5, j + 0.5, facecolor='y', alpha=0.1, edgecolor='none')
    plt.show()
    
    
    plt.plot(df['mean_clustering'][0:25], marker='o', label='{} {}'.format(hive_names[i], 'mean clustering'))
    plt.plot(df['median_clustering'][0:25], marker='o', label='{} {}'.format(hive_names[i], 'median clustering'))
    plt.title('{} Node Clustering'.format(hive_names[i]))
    plt.xlabel('Days')
    plt.xticks(range(x_len), day_nums)
    plt.xlim(-0.5,24.5)
    plt.legend(loc='upper right')
    for j, time_period in enumerate(real_result_df_list[0]['time_period'][0:25]):
        if time_period == 'night':
            plt.axvspan(j - 0.5, j + 0.5, facecolor='b', alpha=0.1, edgecolor='none')
        else:
            plt.axvspan(j - 0.5, j + 0.5, facecolor='y', alpha=0.1, edgecolor='none')
    plt.show()



In [6]:
extended_metrics = ['mean_all_tracked_speeds', 'mean_min_tracked_speeds', 'median_all_tracked_speeds', 'median_min_tracked_speeds', 'spread_all_tracked_all_xy', 'spread_all_tracked_individuals', 'spread_min_tracked_all_xy', 'spread_min_tracked_individuals']
metrics_names = ['Mean Speed All Bees Tracked', 'Mean Speed Filtered Bees', 'Median Speed All Bees Tracked', 'Median Speed Filtered Bees', 'Spread All Bees All Coordinates', 'Spread All Bees Individuals', 'Spread Filtered Bees All Coordinates', 'Spread Filtered Bees Individuals']

for i, df in enumerate(real_result_df_list):
    for j, metric in enumerate(extended_metrics):
        plt.plot(df[metric][0:25], marker='o', label='{}'.format(metrics_names[j]))
    
    x_len = 24
    day_nums = []
    [day_nums.extend(['', ii + 1]) for ii in range(int(x_len / 2))]
    
    plt.title(hive_names[i])
    plt.xlabel('Days')
    plt.xlim(-0.5,24.5)
    plt.xticks(range(x_len), day_nums)

    plt.legend(loc='lower left')

    for j, time_period in enumerate(real_result_df_list[0]['time_period'][0:25]):
        if time_period == 'night':
            plt.axvspan(j - 0.5, j + 0.5, facecolor='b', alpha=0.1, edgecolor='none')
        else:
            plt.axvspan(j - 0.5, j + 0.5, facecolor='y', alpha=0.1, edgecolor='none')
    plt.show()



In [7]:
weather_metrics = ['cloudCover','dewPoint','humidity','pressure','temperature','visibility','windSpeed']
weather_metrics_names = ['Cloud Cover','Dewpoint','Humidity','Pressure','Temperature','Visibility','Wind Speed']

weather_files = ['../results/2_weather.csv', '../results/3_weather.csv', '../results/4_weather.csv', '../results/1_weather.csv']

weather_df_list = []
for file in weather_files:
    df = pd.read_csv(file, comment='#', header = 0)
    weather_df_list.append(df)

print(weather_df_list[0].dtypes)
weather_df_list[0].head()


apparentTemperature    float64
cloudCover             float64
date                    object
dewPoint               float64
hour                   float64
humidity               float64
precipType              object
pressure               float64
temperature            float64
time_period             object
visibility             float64
windBearing            float64
windSpeed              float64
dtype: object
Out[7]:
apparentTemperature cloudCover date dewPoint hour humidity precipType pressure temperature time_period visibility windBearing windSpeed
0 19.400000 0.000000 2016-02-26 12.720000 NaN 0.664286 rain 1012.294286 19.400000 night 9.980 197.285714 1.692857
1 26.071429 0.310000 2016-02-26 9.255714 NaN 0.358571 rain 1014.447143 26.835714 day 11.362 220.000000 2.835714
2 17.311429 0.666667 2016-02-27 13.911429 NaN 0.805714 rain 1017.654286 17.311429 night 9.980 109.714286 2.495714
3 21.164286 0.916667 2016-02-27 13.742857 NaN 0.628571 rain 1019.222857 21.164286 day 9.980 67.857143 3.130000
4 16.374286 0.666667 2016-02-28 13.510000 NaN 0.834286 rain 1017.848571 16.374286 night 9.980 76.428571 1.985714

In [8]:
for jj, metric in enumerate(weather_metrics):
    
    x_len = 24
    day_nums = []
    [day_nums.extend(['', i + 1]) for i in range(int(x_len / 2))]

    for i, df in enumerate(weather_df_list):
        plt.plot(df[metric][0:25], marker='o', label='{}'.format(hive_names[i]))
    plt.title(weather_metrics_names[jj])
    plt.xlabel('Days')
    plt.xticks(range(x_len), day_nums)
    plt.xlim(-0.5,24.5)
    plt.legend(loc='lower left')

    for j, time_period in enumerate(weather_df_list[0]['time_period'][0:25]):
        if time_period == 'night':
            plt.axvspan(j - 0.5, j + 0.5, facecolor='b', alpha=0.1, edgecolor='none')
        else:
            plt.axvspan(j - 0.5, j + 0.5, facecolor='y', alpha=0.1, edgecolor='none')
    plt.show()



In [ ]:


In [ ]: