Python-pptx line chart error -
newb here getting python , ran issue that's beating me down. have following excerpt of python code create ppt slide existing template. layout , placeholders correct can't run data listed below (x, y_in, & y_out). appreciated.
x = [datetime.datetime(2017, 8, 4, 15, 5, tzinfo=<fixedoffset u'+00:00' datetime.timedelta(0)>), datetime.datetime(2017, 8, 4, 15, 10, tzinfo=<fixedoffset u'+00:00' datetime.timedelta(0)>), datetime.datetime(2017, 8, 4, 15, 15, tzinfo=<fixedoffset u'+00:00' datetime.timedelta(0)>), datetime.datetime(2017, 8, 4, 15, 20, tzinfo=<fixedoffset u'+00:00' datetime.timedelta(0)>)] y_in = [780993, 538962, 730180, 1135936] y_out = [5631489, 6774738, 6485944, 6611580] prs = presentation('network_utilization_template_master.pptx') slide = prs.slides.add_slide(prs.slide_layouts[2]) placeholder = slide.placeholders[17] chart_data = categorychartdata() chart_data.categories = x chart_data.add_series(y_in) chart_data.add_series(y_out) graphic_frame = placeholder.insert_chart(xl_chart_type.line, chart_data) chart = graphic_frame.chart chart.has_legend = true chart.legend.include_in_layout = true chart.series[0-2].smooth = true prs.save("network_utilization_" + today_s + ".pptx")
the compiler spits out following:
traceback (most recent call last): file "/users/jemorey/documents/pptx-2.py", line 81, in <module> graphic_frame = placeholder.insert_chart(xl_chart_type.line, chart_data) file "/users/jemorey/library/python/2.7/lib/python/site-packages/pptx/shapes/placeholder.py", line 291, in insert_chart rid = self.part.add_chart_part(chart_type, chart_data) file "/users/jemorey/library/python/2.7/lib/python/site-packages/pptx/parts/slide.py", line 174, in add_chart_part chart_part = chartpart.new(chart_type, chart_data, self.package) file "/users/jemorey/library/python/2.7/lib/python/site-packages/pptx/parts/chart.py", line 29, in new chart_blob = chart_data.xml_bytes(chart_type) file "/users/jemorey/library/python/2.7/lib/python/site-packages/pptx/chart/data.py", line 104, in xml_bytes return self._xml(chart_type).encode('utf-8') file "/users/jemorey/library/python/2.7/lib/python/site-packages/pptx/chart/data.py", line 128, in _xml return chartxmlwriter(chart_type, self).xml file "/users/jemorey/library/python/2.7/lib/python/site-packages/pptx/chart/xmlwriter.py", line 803, in xml 'ser_xml': self._ser_xml, file "/users/jemorey/library/python/2.7/lib/python/site-packages/pptx/chart/xmlwriter.py", line 902, in _ser_xml 'tx_xml': xml_writer.tx_xml, file "/users/jemorey/library/python/2.7/lib/python/site-packages/pptx/chart/xmlwriter.py", line 191, in tx_xml 'series_name': self.name, file "/users/jemorey/library/python/2.7/lib/python/site-packages/pptx/chart/xmlwriter.py", line 121, in name return escape(self._series.name) file "/system/library/frameworks/python.framework/versions/2.7/lib/python2.7/xml/sax/saxutils.py", line 32, in escape data = data.replace("&", "&") attributeerror: 'list' object has no attribute 'replace'
david zemens quite right in comment. series has name, appears first argument chartdata.add_series()
. name appears in legend next line color series , appears column heading data series. adding in should next step.
something like:
chart_data.add_series('mb in', y_in) chart_data.add_series('mb out', y_out)
Comments
Post a Comment