def testLibs(self): p = pygg.ggplot('diamonds', pygg.aes(x='carat', y='price')) p += pygg.geom_point() tmpfile = tempfile.NamedTemporaryFile(suffix='.pdf').name pygg.ggsave(tmpfile, p, data=None, libs=['grid'], quiet=True) self.assertTrue(os.path.exists(tmpfile)) self.assertTrue(os.path.getsize(tmpfile) > 0)
def testBasicDataggplot(self): data = [dict(x=x, y=y) for x, y in zip(range(10), range(10))] p = pygg.ggplot(data, pygg.aes(x='x', y='y')) p += pygg.geom_point() p += pygg.geom_smooth() p += pygg.ggtitle(pygg.esc('Test title')) self.check_ggsave(p)
def testPandasDF(self): data = pandas.read_csv(StringIO.StringIO(IRIS_DATA_CSV)) self.assertIsInstance(data, pandas.DataFrame) p = pygg.ggplot('data', pygg.aes(x='SepalLength', y='PetalLength', color='Name')) p += pygg.geom_point() p += pygg.geom_smooth() p += pygg.ggtitle(pygg.esc('Test title')) self.check_ggsave(p, data)
def testPandasDFggplot(self): data = pandas.read_csv(StringIO.StringIO(IRIS_DATA_CSV)) self.assertIsInstance(data, pandas.DataFrame) p = pygg.ggplot( data, pygg.aes(x='SepalLength', y='PetalLength', color='Name')) p += pygg.geom_point() p += pygg.geom_smooth() p += pygg.ggtitle(pygg.esc('Test title')) self.check_ggsave(p)
def testE2E(self): """Test end-to-end creation of figures with outputs to pdf and png""" p = pygg.ggplot('diamonds', pygg.aes(x='carat', y='price', color='clarity')) p += pygg.geom_point(alpha=0.5, size = .75) p += pygg.scale_x_log10() p += pygg.theme_bw() self.check_ggsave(p, None, ext=".pdf") self.check_ggsave(p, None, ext=".png") self.check_ggsave(p, None, ext=".jpg")
def testE2E(self): """Test end-to-end creation of figures with outputs to pdf and png""" p = pygg.ggplot('diamonds', pygg.aes(x='carat', y='price', color='clarity')) p += pygg.geom_point(alpha=0.5, size=.75) p += pygg.scale_x_log10() p += pygg.theme_bw() self.check_ggsave(p, None, ext=".pdf") self.check_ggsave(p, None, ext=".png") self.check_ggsave(p, None, ext=".jpg")
def testIPython(self): """Test that gg_ipython returns a IPython formatted Image""" p = pygg.ggplot('diamonds', pygg.aes(x='carat', y='price')) p += pygg.geom_point() img = pygg.gg_ipython(p, data=None) self.assertIsNotNone(img.data) self.assertEqual(img.format, "jpeg") self.assertEqual(img.width, pygg.IPYTHON_IMAGE_SIZE) self.assertEqual(img.height, pygg.IPYTHON_IMAGE_SIZE) img = pygg.gg_ipython(p, data=None, width=600, height=400) self.assertEqual(img.width, 600) self.assertEqual(img.height, 400) img = pygg.gg_ipython(p, data=None, width=600) self.assertEqual(img.width, 600) self.assertEqual(img.height, 600)
def testBadGGPlotFails(self): p = pygg.ggplot('diamonds', pygg.aes(x='MISSING')) + pygg.geom_point() with self.assertRaises(ValueError): tmpfile = tempfile.NamedTemporaryFile(suffix=".png").name pygg.ggsave(tmpfile, p, data=None, quiet=True)
def testFacets2(self): p = pygg.ggplot('diamonds', pygg.aes(x='carat', y='price')) p += pygg.geom_point() p += pygg.facet_wrap("~clarity") self.check_ggsave(p, None)
def testLimits(self): p = pygg.ggplot('diamonds', pygg.aes(x='carat', y='price', color='clarity')) p += pygg.geom_point(alpha=0.5, size = .75) p += pygg.scale_x_log10(limits=[1, 2]) self.check_ggsave(p, None)
def testLimits(self): p = pygg.ggplot('diamonds', pygg.aes(x='carat', y='price', color='clarity')) p += pygg.geom_point(alpha=0.5, size=.75) p += pygg.scale_x_log10(limits=[1, 2]) self.check_ggsave(p, None)
def testNativeRDataset(self): p = pygg.ggplot('diamonds', pygg.aes(x='carat', y='carat')) + pygg.geom_point() self.check_ggsave(p, None)