diff --git a/pandas_highcharts/core.py b/pandas_highcharts/core.py index f7edabc..3fc78bb 100644 --- a/pandas_highcharts/core.py +++ b/pandas_highcharts/core.py @@ -116,7 +116,10 @@ def serialize_subtitle(df, output, *args, **kwargs): def serialize_title(df, output, *args, **kwargs): if "title" in kwargs: - output["title"] = {"text": kwargs["title"]} + if isinstance(kwargs["title"], dict): + output["title"] = kwargs["title"] + else: + output["title"] = {"text": kwargs["title"]} def serialize_tooltip(df, output, *args, **kwargs): if 'tooltip' in kwargs: diff --git a/pandas_highcharts/tests.py b/pandas_highcharts/tests.py index 55e7dde..1b336e9 100644 --- a/pandas_highcharts/tests.py +++ b/pandas_highcharts/tests.py @@ -14,7 +14,6 @@ {'a': 2, 'b': 4, 'c': 6, 't': datetime.datetime(2015, 1, 2), 's': 's2'} ]) - class CoreTest(TestCase): def test_type(self): self.assertEqual(type(serialize(df, render_to="chart")), str) @@ -74,6 +73,13 @@ def test_type(self): for yaxis in obj.get('yAxis', []): self.assertTrue(yaxis.get('tickPositions')) + obj = serialize(df, render_to="chart", output_type="dict", title={"text": 'Chart',"x": -20}, xticks=[1], yticks=[2]) + self.assertTrue(obj.get('title', {}).get('text')) + self.assertTrue(obj.get('title', {}).get('x')) + self.assertTrue(obj.get('xAxis', {}).get('tickPositions')) + for yaxis in obj.get('yAxis', []): + self.assertTrue(yaxis.get('tickPositions')) + obj = serialize(df, render_to="chart", output_type="dict", fontsize=12, kind='pie', x='s', y=['a'], tooltip={'pointFormat': '{series.name}: {point.percentage:.1f}%'}) self.assertTrue(obj.get('tooltip')) @@ -97,3 +103,5 @@ def test_jsonencoder(self): self.assertEqual(json_encode(datetime.date(2015, 1, 1)), "1420070400000") self.assertEqual(json_encode(datetime.datetime(2015, 1, 1)), "1420070400000") self.assertEqual(json_encode(pandas.tslib.Timestamp(1420070400000000000)), "1420070400000") + +