def draw_chart(self, wsheet, series, left=0, title=""): chart = BarChart() chart.title = title chart.drawing.left = 500 + left chart.drawing.top = 250 + left chart.drawing.height = 200 chart.drawing.width = 500 i = 0 for serie in series: if len(serie) == 4: x1 = int(serie[0]) y1 = int(serie[1]) x2 = int(serie[2]) y2 = int(serie[3]) if x2 > 3: if i == 0: legend = Reference(wsheet, (0, 0)) labels = Reference(wsheet, (x1, 0), (x2, 0)) else: if y1 < 13: legend = Reference(wsheet, (0, 4)) if y1 >= 13: legend = Reference(wsheet, (0, 13)) #value = wsheet.cell(row=4,column=0).value title = wsheet.title if title.find("Rate") < 0: isLabel = True else: if len(title) > 12: isLabel = True else: isLabel = False if i == 0 and isLabel: # type(value).__name__ <> 'int': seri = Serie(Reference(wsheet, (x1, y1), (x2, y2)), labels=labels, legend=legend) else: seri = Serie(Reference(wsheet, (x1, y1), (x2, y2)), legend=legend) chart.add_serie(seri) i += 1 wsheet.add_chart(chart)
def test_computer_xmin_xmax(self): c = Chart(None, None) s = Serie(self.range, xvalues=self.range) c._series.append(s) c._compute_xmin_xmax() eq_(c.x_axis.max, 2.0) eq_(c.x_axis.unit, 1.0)
def test_ctor(self): series = Serie(self.cell) eq_(series.values, [0]) eq_(series.color, None) eq_(series.error_bar, None) eq_(series.xvalues, None) eq_(series.labels, None) eq_(series.legend, None)
def test_max(self): series = Serie(self.cell) eq_(series.max(), 0) series = Serie(self.range) eq_(series.max(), 9) series = Serie(self.empty) eq_(series.max(), None)
def test_min_max(self): series = Serie(self.cell) eq_(series.get_min_max(), (0, 0)) series = Serie(self.range) eq_(series.get_min_max(), (0, 9)) series = Serie(self.empty) eq_(series.get_min_max(), (None, None))
def setUp(self): wb = Workbook() ws = wb.get_active_sheet() ws.title = u'data' for i in range(10): ws.cell(row=i, column=0).value = i self.chart = BarChart() self.chart.title = 'TITLE' self.chart.add_serie(Serie(Reference(ws, (0, 0), (10, 0)))) self.chart._series[-1].color = Color.GREEN self.cw = ChartWriter(self.chart) self.root = Element('test')
def setUp(self): wb = Workbook() ws = wb.get_active_sheet() ws.title = 'data' for i in range(10): ws.cell(row=i, column=0).value = i ws.cell(row=i, column=1).value = i self.scatterchart = ScatterChart() self.scatterchart.add_serie(Serie(Reference(ws, (0, 0), (10, 0)), xvalues=Reference(ws, (0, 1), (10, 1)))) self.cw = ChartWriter(self.scatterchart) self.root = Element('test')
def test_no_write_legend(self): wb = Workbook() ws = wb.get_active_sheet() ws.title = 'data' for i in range(10): ws.cell(row=i, column=0).value = i ws.cell(row=i, column=1).value = i scatterchart = ScatterChart() scatterchart.add_serie(Serie(Reference(ws, (0, 0), (10, 0)), xvalues=Reference(ws, (0, 1), (10, 1)))) cw = ChartWriter(scatterchart) root = Element('test') scatterchart.show_legend = False cw._write_legend(root) eq_(get_xml(root), '<?xml version=\'1.0\' encoding=\'UTF-8\'?><test />')
for c,n in zip(ws2.range("B2:M2")[0], packetSizes): c.value = n c.style.font.bold = True ws3.cell('A3').style.font.bold = True for c, n in zip(ws3.range("B4:M4")[0], packetsDropped): c.value = n wb.save("emmaResults.xlsx") # Throughput and mem. efficiency charts throughputChart = LineChart() throughputChart.show_legend = False if(bwLatency == 1): throughputChart.x_axis.title = "No. of Flows" elif(bwLatency == 1): throughputChart.x_axis.title = "Input Throughput (in Gbps)" elif(bwLatency == 0): throughputChart.x_axis.title = "Packet Size (in Bytes)" throughputChart.y_axis.title = "Mem. Throughput (in Gbps)" throughputChart.add_serie(Serie(Reference(ws1, (2, 2), (2, 2 + counter)), labels=(Reference(ws1, (1, 1), (1, counter))))) ws1.add_chart(throughputChart) memEfficienyChart = LineChart() memEfficienyChart.y_axis.min = 0 memEfficienyChart.y_axis.max = 100 memEfficienyChart.add_serie(Serie(Reference(ws1, (3, 2), (3, 2 + counter)), labels=(Reference(ws1, (1, 1), (1, counter))))) memEfficienyChart.show_legend = False memEfficienyChart.y_axis.title = "Mem. Efficiency (in % of clock cycles used)" if(bwLatency == 2): memEfficienyChart.x_axis_title = "No. of Flows" elif(bwLatency == 1): memEfficienyChart.x_axis.title = "Input Throughput (in Gbps)" elif(bwLatency == 0): memEfficienyChart.x_axis.title = "Packet Size (in Bytes)" memEfficienyChart.x_axis.title = "Input Throughput (in Gbps)" ws1.add_chart(memEfficienyChart) #Latency Charts latencyChart = LineChart() # chart for the average Latency per access for all mem. accesses latencyChart.add_serie(Serie(Reference(ws2, (2, 2), (2, 2 + counter)), labels=(Reference(ws2, (1, 1), (1, counter)))))
def test_error_bar(self): series = Serie(self.cell) from openpyxl.chart import ErrorBar series.error_bar = ErrorBar(None, self.cell) eq_(series.get_min_max(), (0, 0))
def test_len(self): series = Serie(self.cell) eq_(len(series), 1)
def test_min_max(self): series = Serie(self.cell) eq_(series.get_min_max(), (0, 0))
def test_color(self): series = Serie(self.cell) eq_(series.color, None) series.color = "blue" eq_(series.color, "blue") assert_raises(ValueError, setattr, series, 'color', None)