Пример #1
0
    def test2(self):
        R = {
            'aggregate':
            'ci',
            'clevels': [1],
            'fname':
            r'output/interaction_plot(SUPPRESSION~CYCLE_X_AGE_X_PHASE,yerr=95% ci).png',
            'maintitle':
            'SUPPRESSION by CYCLE * AGE * PHASE',
            'numcols':
            1,
            'numrows':
            2,
            'rlevels': ['I', 'II'],
            'subplot_titles': ['I', 'II'],
            'xmaxs': [4.1749999999999998, 4.1749999999999998],
            'xmins': [0.32499999999999996, 0.32499999999999996],
            'y': [[[17.33333333, 22.41666667, 22.29166667, 20.75],
                   [7.34166667, 9.65, 9.70833333, 9.10833333]],
                  [[26.625, 38.70833333, 39.08333333, 40.83333333],
                   [10.24166667, 12.575, 13.19166667, 12.79166667]]],
            'yerr': [[1.81325589, 1.44901936, 1.60883063, 1.57118871],
                     [2.49411239, 1.34873573, 1.95209851, 1.35412572]],
            'ymax':
            64.8719707118471,
            'ymin':
            0.0
        }

        # generate yerr
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/suppression~subjectXgroupXageXcycleXphase.csv')

        D = df.interaction_plot('SUPPRESSION',
                                'CYCLE',
                                seplines='AGE',
                                sepyplots='PHASE',
                                yerr='ci',
                                output_dir='output')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)

        for d, r in zip(np.array(D['yerr']).flat, np.array(R['yerr']).flat):
            self.assertAlmostEqual(d, r)
Пример #2
0
    def test1(self):
        R = {
            'aggregate':
            None,
            'clevels': ['M1', 'M2', 'M3'],
            'fname':
            r'output/interaction_plot(ERROR~TIMEOFDAY_X_COURSE_X_MODEL,yerr=1.0).png',
            'maintitle':
            'ERROR by TIMEOFDAY * COURSE * MODEL',
            'numcols':
            3,
            'numrows':
            1,
            'rlevels': [1],
            'subplot_titles': ['M1', 'M2', 'M3'],
            'xmaxs': [1.5, 1.5, 1.5],
            'xmins': [-0.5, -0.5, -0.5],
            'y': [[[9., 4.33333333], [8.66666667, 3.66666667],
                   [4.66666667, 1.66666667]],
                  [[7.5, 2.66666667], [6., 2.66666667], [5., 1.66666667]],
                  [[5., 2.66666667], [3.5, 2.33333333],
                   [2.33333333, 1.33333333]]],
            'yerr': [[1.0, 1.0], [1.0, 1.0], [1.0, 1.0]],
            'ymax':
            11.119188627248182,
            'ymin':
            0.0
        }

        # specify yerr
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/error~subjectXtimeofdayXcourseXmodel_MISSING.csv')
        D = df.interaction_plot('ERROR',
                                'TIMEOFDAY',
                                seplines='COURSE',
                                sepxplots='MODEL',
                                yerr=1.,
                                output_dir='output')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)

        for d, r in zip(np.array(D['yerr']).flat, np.array(R['yerr']).flat):
            self.assertAlmostEqual(d, r)
Пример #3
0
    def test01(self):
        """confidence interval error bars specified"""

        R = {
            'aggregate':
            'ci',
            'clevels': [1],
            'fname':
            r'output/interaction_plot(WORDS~AGE_X_CONDITION,yerr=95% ci).png',
            'maintitle':
            'WORDS by AGE * CONDITION',
            'numcols':
            1,
            'numrows':
            1,
            'rlevels': [1],
            'subplot_titles': [''],
            'xmaxs': [1.5],
            'xmins': [-0.5],
            'y': [[[11.0, 14.8], [7.0, 6.5], [13.4, 17.6], [12.0, 19.3],
                   [6.9, 7.6]]],
            'yerr': [[]],
            'ymin':
            0.0,
            'ymax':
            27.183257964740832
        }

        # a simple plot
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/words~ageXcondition.csv')
        D = df.interaction_plot('WORDS',
                                'AGE',
                                seplines='CONDITION',
                                output_dir='output',
                                yerr='ci')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)

        for d, r in zip(np.array(D['yerr']).flat, np.array(R['yerr']).flat):
            self.assertAlmostEqual(d, r)
Пример #4
0
    def test6(self):
        R = {
            'aggregate':
            'ci',
            'clevels': [1],
            'fname':
            r'output/interaction_plot(SUPPRESSION~CYCLE_X_PHASE,yerr=95% ci).png',
            'maintitle':
            'SUPPRESSION by CYCLE * PHASE',
            'numcols':
            1,
            'numrows':
            2,
            'rlevels': ['I', 'II'],
            'subplot_titles': ['I', 'II'],
            'xmaxs': [4.1749999999999998, 4.1749999999999998],
            'xmins': [0.82499999999999996, 0.82499999999999996],
            'y': [[12.3375, 16.03333333, 16., 14.92916667],
                  [18.43333333, 25.64166667, 26.1375, 26.8125]],
            'yerr': [[3.18994762, 3.20528834, 3.26882751, 3.53477953],
                     [3.98429064, 4.5950803, 4.9514978, 4.97429769]],
            'ymax':
            64.8719707118471,
            'ymin':
            0.0
        }

        # generate yerr
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/suppression~subjectXgroupXageXcycleXphase.csv')
        D = df.interaction_plot('SUPPRESSION',
                                'CYCLE',
                                sepyplots='PHASE',
                                yerr='ci',
                                output_dir='output')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)

        for d, r in zip(np.array(D['yerr']).flat, np.array(R['yerr']).flat):
            self.assertAlmostEqual(d, r)
Пример #5
0
    def test4(self):
        R = {
            'aggregate':
            None,
            'clevels':
            ['adjective', 'counting', 'imagery', 'intention', 'rhyming'],
            'fname':
            r'output/interaction_plot(WORDS~AGE_X_CONDITION).png',
            'maintitle':
            'WORDS by AGE * CONDITION',
            'numcols':
            5,
            'numrows':
            1,
            'rlevels': [1],
            'subplot_titles':
            ['adjective', 'counting', 'imagery', 'intention', 'rhyming'],
            'xmaxs': [1.5, 1.5, 1.5, 1.5, 1.5],
            'xmins': [-0.5, -0.5, -0.5, -0.5, -0.5],
            'y': [[11., 14.8], [7., 6.5], [13.4, 17.6], [12., 19.3],
                  [6.9, 7.6]],
            'yerr': [[], [], [], [], []],
            'ymax':
            27.183257964740832,
            'ymin':
            0.0
        }

        # a simple plot
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/words~ageXcondition.csv')
        D = df.interaction_plot('WORDS',
                                'AGE',
                                sepxplots='CONDITION',
                                output_dir='output')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)

        for d, r in zip(np.array(D['yerr']).flat, np.array(R['yerr']).flat):
            self.assertAlmostEqual(d, r)
Пример #6
0
    def test31(self):

        # separate y plots and separate x plots
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/suppression~subjectXgroupXageXcycleXphase.csv')

        D = df.interaction_plot('SUPPRESSION',
                                'CYCLE',
                                seplines='AGE',
                                sepxplots='GROUP',
                                sepyplots='PHASE',
                                yerr='sem',
                                output_dir='output')
Пример #7
0
    def test7(self):
        R = {
            'aggregate':
            'ci',
            'clevels': ['I', 'II'],
            'fname':
            r'output/interaction_plot(SUPPRESSION~CYCLE_X_PHASE_X_GROUP,yerr=95% ci).png',
            'maintitle':
            'SUPPRESSION by CYCLE * PHASE * GROUP',
            'numcols':
            2,
            'numrows':
            2,
            'rlevels': ['AA', 'AB'],
            'subplot_titles': [
                'GROUP = AA, PHASE = AA', 'GROUP = AA, PHASE = AA',
                'GROUP = AB, PHASE = AB', 'GROUP = AB, PHASE = AB'
            ],
            'xmaxs': [
                4.1500000000000004, 4.1500000000000004, 4.1500000000000004,
                4.1500000000000004
            ],
            'xmins': [
                0.84999999999999998, 0.84999999999999998, 0.84999999999999998,
                0.84999999999999998
            ],
            'y': [[13.2125, 16.3, 16.8125, 15.0875],
                  [14.5875, 19.1875, 15.1375, 17.675],
                  [9.075, 16.1625, 14.5625, 11.6875],
                  [15.7125, 27.1125, 30.3, 32.3]],
            'yerr': [[6.41377058, 4.90274323, 6.52638491, 4.723284],
                     [7.98351964, 7.01554694, 5.50066923, 4.7712851],
                     [4.06006718, 6.15225848, 4.21669129, 6.23708923],
                     [4.55687267, 7.52964629, 8.43210133, 10.3156968]],
            'ymax':
            64.8719707118471,
            'ymin':
            0.0
        }

        # separate y plots and separate x plots
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/suppression~subjectXgroupXageXcycleXphase.csv')

        D = df.interaction_plot('SUPPRESSION',
                                'CYCLE',
                                sepxplots='PHASE',
                                sepyplots='GROUP',
                                yerr='ci',
                                where=[('GROUP', 'not in', ['LAB'])],
                                output_dir='output')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)

        for d, r in zip(np.array(D['yerr']).flat, np.array(R['yerr']).flat):
            self.assertAlmostEqual(d, r)
Пример #8
0
    def test3(self):
        R = {
            'aggregate':
            'ci',
            'clevels': ['I', 'II'],
            'fname':
            r'output/whereGROUPnotLAB.png',
            'maintitle':
            'SUPPRESSION by CYCLE * AGE * PHASE * GROUP',
            'numcols':
            2,
            'numrows':
            2,
            'rlevels': ['AA', 'AB'],
            'subplot_titles': [
                'GROUP = AA, PHASE = AA', 'GROUP = AA, PHASE = AA',
                'GROUP = AB, PHASE = AB', 'GROUP = AB, PHASE = AB'
            ],
            'xmaxs': [
                4.1500000000000004, 4.1500000000000004, 4.1500000000000004,
                4.1500000000000004
            ],
            'xmins': [
                0.84999999999999998, 0.84999999999999998, 0.84999999999999998,
                0.84999999999999998
            ],
            'y':
            [[[17.75, 22.375, 23.125, 20.25], [8.675, 10.225, 10.5, 9.925]],
             [[20.875, 28.125, 20.75, 24.25], [8.3, 10.25, 9.525, 11.1]],
             [[12.625, 23.5, 20., 15.625], [5.525, 8.825, 9.125, 7.75]],
             [[22.75, 41.125, 46.125, 51.75], [8.675, 13.1, 14.475, 12.85]]],
            'ymax':
            64.8719707118471,
            'ymin':
            0.0
        }

        # separate y plots and separate x plots
        df = DataFrame()
        df.TESTMODE = True
        df.read_tbl(r'data/suppression~subjectXgroupXageXcycleXphase.csv')

        D = df.interaction_plot('SUPPRESSION',
                                'CYCLE',
                                seplines='AGE',
                                sepxplots='PHASE',
                                sepyplots='GROUP',
                                yerr='ci',
                                where=[('GROUP', 'not in', ['LAB'])],
                                fname='whereGROUPnotLAB.png',
                                output_dir='output')

        self.assertEqual(D['aggregate'], R['aggregate'])
        self.assertEqual(D['clevels'], R['clevels'])
        self.assertEqual(D['rlevels'], R['rlevels'])
        self.assertEqual(D['numcols'], R['numcols'])
        self.assertEqual(D['numrows'], R['numrows'])
        self.assertEqual(D['fname'], R['fname'])
        self.assertEqual(D['maintitle'], R['maintitle'])
        self.assertEqual(D['subplot_titles'], R['subplot_titles'])
        self.assertAlmostEqual(D['ymin'], R['ymin'])
        self.assertAlmostEqual(D['ymax'], R['ymax'])

        for d, r in zip(np.array(D['y']).flat, np.array(R['y']).flat):
            self.assertAlmostEqual(d, r)