コード例 #1
0
def createWorkBook () :
    wb = Workbook()
    ws = wb.active

    for row in data:
        ws.append(row)

    chart = ScatterChart()
    chart.title = "Scatter Chart"
    chart.style = 13
    chart.x_axis.title = 'Size'
    chart.y_axis.title = 'Percentage'
    j = 1
    valueList = []
    for row in ws :
        for cell in row :
            chart = ScatterChart()
            if str(cell.value) == 'from' :
                xvalues = Reference(ws, min_col = 2, max_col=3, min_row = cell.row +1, max_row= cell.row +1)
                values = Reference(ws, min_col = 2, max_col=3,min_row= cell.row +2, max_row = cell.row +2)
                series = Series(values,xvalues ,  title_from_data=False)
                valueList.append(series)
            elif (str(cell.value) == 'title' and cell.row > 1) or str(cell.value) == 'end':
                for value in valueList :
                    chart.series.append(value)
                ws.add_chart(chart, "A10")
                valueList =  []
    wb.save('test.xlsx')
コード例 #2
0
ファイル: Manipulator.py プロジェクト: shakeel121/AutoExcel
    def addChart(groupLength1):
        print('Printing Chart...')
        # print('grouplength1: '+str(len(groupLength1)))
        chart = ScatterChart()
        chart.title = "Capacity Vs Voltage"
        chart.style = 13
        chart.x_axis.title = 'Capacity'
        chart.y_axis.title = 'Voltage'
        le = (len(groupLength1) * 4) + len(groupLength1)
        # print("The sizes of each grp" + str(groupLength1[0]))
        k = 0
        m = 1
        # print("list siz = " + str(len(groupLength1)))
        # print("le = " + str(le))
        for j in range(4, le, 5):
            print("j = " + str(j))
            xvalues = Reference(AutoExcel.sh1_O,
                                min_col=j,
                                min_row=1,
                                max_row=groupLength1[k])
            values = Reference(AutoExcel.sh1_O,
                               min_col=m,
                               min_row=1,
                               max_row=groupLength1[k])
            series = Series(values, xvalues, title_from_data=True)
            chart.series.append(series)
            k += 1
            m += 5

        AutoExcel.sh1_O.add_chart(chart, 'L3')

        out_f = "C:\\Users\\Vignesh\\PycharmProjects\\AutoExcel\\src\\uploads\\" + AutoExcel.outputFile + '.xlsx'
        AutoExcel.wb_O.save(out_f)
コード例 #3
0
    def sample_bar_chart(self, title, matrix):
        """
            more details
            https://openpyxl.readthedocs.io/en/2.5/charts/chart_layout.html#size-and-position
        """
        rows, cols = len(matrix), len(matrix[0])

        wb = openpyxl.Workbook()
        sheet = wb.active

        for data_row in matrix:
            sheet.append(data_row)

        chart = ScatterChart()
        x = Reference(sheet, min_col=1, min_row=1, max_row=rows)
        for i in range(2, cols + 1):
            y = Reference(sheet, min_col=i, min_row=1, max_row=rows)
            s = Series(y, x, title_from_data=True)
            chart.series.append(s)
        chart.title = title
        chart.style = 12
        chart.x_axis.title = "X"
        chart.y_axis.title = "Y"
        chart.legend.position = 'r'

        sheet.add_chart(chart, 'B12')
        wb.save("sample_chart.xlsx")
コード例 #4
0
def createGraph3(disl, disl3):  #,disl2,disl3):

    res = 'Resistencia'
    eft = 'Ef.Turbina'
    disl = [res] + disl
    disl3 = [eft] + disl3

    #for i in range(1,len(disl)):

    for g in range(1):
        graph3.append(disl)
        graph3.append(disl3)

    chart = ScatterChart()
    chart.title = 'R[Ω] vs Eficiencia turbina'
    chart.x_axis.title = 'Eft'
    chart.y_axis.title = 'R'
    xvals = Reference(graph3, min_col=2, min_row=1, max_col=len(disl))
    #for s in range(1,len(disl)): #10
    values = Reference(graph3, min_col=2, min_row=2, max_col=len(disl))
    series = Series(values, xvals, title_from_data=True)
    chart.series.append(series)
    #chart.add_data(values)
    #s = chart.series[1]
    graph3.add_chart(chart, "M1")
    wb.save(filesheet)
def create_graph(result_file, result_book, sheet_name_active, current_format_sheet):
    # Valiable Assignment
    book_name_will_plot_graph = os.path.basename(result_file)
    sheet_name_will_plot_graph = result_book[sheet_name_active]
    max_row_in_sheet_name = sheet_name_will_plot_graph.max_row

    # Assign value in X-axis and Y-axis
    scatter_chart = ScatterChart()
    y_values = Reference(sheet_name_will_plot_graph, min_row=3, max_row=max_row_in_sheet_name, min_col=3)
    x_values = Reference(sheet_name_will_plot_graph, min_row=3, max_row=max_row_in_sheet_name, min_col=2)
    series = Series(y_values, x_values, title=None, title_from_data=False)
    scatter_chart.series.append(series)

    # Adjust Scatter Element
    scatter_chart.y_axis.scaling.min = 0
    scatter_chart.legend = None
    scatter_chart.y_axis.number_format = "0.00"

    # Paste Scatter_chart
    current_format_sheet.add_chart(scatter_chart, "A5")

    # Setting width and height of scatter_chart
    scatter_chart.width = 14
    scatter_chart.height = 8
    return scatter_chart
コード例 #6
0
ファイル: run.py プロジェクト: im-tkc/Beta-Calculator
def plot_graph(workbook, output_file, index_ticker, company_ticker):
    sheets_list = workbook.sheetnames
    beta_output = sheets_list[0]
    company_ticker = sheets_list[1]
    market_ticker = sheets_list[2]
    beta_worksheet = workbook[beta_output]
    company_change_len = len(beta_worksheet['A'])

    chart = ScatterChart()
    chart.title = "Beta"
    chart.style = 13
    chart.x_axis.title = '{0} % change'.format(index_ticker)
    chart.y_axis.title = '{0} % change'.format(company_ticker)

    xvalues = Reference(beta_worksheet,
                        min_col=2,
                        min_row=2,
                        max_row=company_change_len)
    yvalues = Reference(beta_worksheet,
                        min_col=1,
                        min_row=2,
                        max_row=company_change_len)

    series = Series(yvalues, xvalues, title_from_data=False)
    series.graphicalProperties.line.noFill = True
    series.marker.symbol = "circle"
    series.marker.size = "2"
    series.trendline = Trendline(dispRSqr=True,
                                 trendlineType='linear',
                                 dispEq=True)

    chart.series.append(series)
    beta_worksheet.add_chart(chart, "F5")
    workbook.save(output_file)
コード例 #7
0
def average_se_trace_full_experiment_chart(file_max_column, file_max_row,
                                           sheet):
    # average_se_trace_full_experiment_chart generates a plot with the average values from the average_se_trace_full_experiment function.

    chart_cell = sheet.cell(row=4, column=file_max_column + 7).coordinate

    chart = ScatterChart()
    chart.style = 2
    chart.title = "Experiment average trace"
    chart.y_axis.title = "Fura2 fluorescence ratio (a.u)"
    chart.x_axis.title = "Time (s)"
    chart.legend = None
    chart.height = 10  # default is 7.5
    chart.width = 20  # default is 15
    chart.x_axis.majorUnit = 60
    ca_ex_st.style_chart(chart.title, chart)

    xvalues = Reference(sheet,
                        min_col=file_max_column + 3,
                        min_row=3,
                        max_col=file_max_column + 3,
                        max_row=file_max_row)
    yvalues = Reference(sheet,
                        min_col=file_max_column + 4,
                        min_row=3,
                        max_col=file_max_column + 4,
                        max_row=file_max_row)
    series = Series(yvalues, xvalues)
    series_trendline = Series(yvalues, xvalues)
    chart.series.append(series)
    chart.series.append(series_trendline)

    sheet.add_chart(chart, chart_cell)
コード例 #8
0
def create_annual_chart(worksheet=None, year=0, min_row=1, max_row=1):
    chart = ScatterChart()

    # sets the chart styling
    chart.title = f'{year}'
    chart.x_axis.title = 'Month'
    chart.y_axis.title = 'Amount'
    chart.legend.position = 'b'
    chart.height = 7.7
    chart.width = 21.5

    xvalues = Reference(worksheet=worksheet,
                        min_col=2,
                        min_row=min_row + 1,
                        max_row=max_row)

    for col in range(3, 6):
        values = Reference(worksheet=worksheet,
                           min_col=col,
                           min_row=min_row,
                           max_row=max_row)
        series = Series(values, xvalues, title_from_data=True)
        chart.series.append(series)

    return chart
コード例 #9
0
ファイル: cfiojobs.scatter.py プロジェクト: will-mei/cfiojobs
def draw_pattern_scatterchart(data_work_sheet, data_rows_seq, data_columns_list, chart_position, chart_title):
    chart = ScatterChart()
    chart.title = str(chart_title)
    chart.legend.position = 't' 
    #chart.x_axis.title = 'samples from:' + data_work_sheet.title[0:21]
    #chart.x_axis.title = u'样本:' + data_work_sheet.title[0:25] + '..'
    chart.x_axis.title = data_work_sheet.title + '..'
    #chart.x_axis.txPr =
    #chart_title_font = Font(name='Arial Narrow',size=12)
    chart.y_axis.title = 'lantency(ms)'
    #chart.style = 13
    #chart.layout = 
    #chart.graphical_properties = 
    #chart.varyColors = 'blue' 
    #chart.scatterStyle = 'marker'
    #same sheet same sample width of chart, x ray values, get min and max row from pattern_col 
    xvalues = Reference(data_work_sheet, min_col=1, min_row=data_rows_seq[0], max_row=data_rows_seq[-1])
    for i in data_columns_list :
        #print(data_work_sheet.cell(row=1,column=i).value)
        line_title = data_work_sheet.cell(row=1,column=i).value
        yvalues = Reference(data_work_sheet, min_col=i, min_row=data_rows_seq[0], max_row=data_rows_seq[-1])
        series  = Series(yvalues, xvalues, title=line_title)
        chart.series.append(series)
    #print(chart.series[0])
    # Style the lines
    for i in range(len(data_columns_list)) :
        s1 = chart.series[i]
        s1.marker.symbol = "circle"
        #s1.marker.symbol = "triangle"
        #s1.marker.graphicalProperties.solidFill = "FF0000" # Marker filling
        #s1.marker.graphicalProperties.line.solidFill = "FF0000" # Marker outline
        s1.graphicalProperties.line.noFill = True 
#    print(wb.chartsheets)
    wb['ScatterChart'].add_chart(chart, chart_position)
コード例 #10
0
def write_plots(worksheet, spec):
    chart = ScatterChart()
    chart.title = 'Measured Data w/ Exponential Fit \n Pressure vs. Temperature'
    chart.style = 13
    chart.x_axis.title = 'Time (hrs)'
    chart.y_axis.title = 'Pressure (psi)'

    # time values (hours)
    x_values = Reference(worksheet, min_col=9, min_row=3, max_row=len(spec.p) + 3)

    # pressure data (psi)
    p = Reference(worksheet, min_col=11, min_row=3, max_row=len(spec.p) + 3)
    p_series = Series(p, x_values)
    chart.series.append(p_series)

    # exponential curve fit data (psi)
    exp = Reference(worksheet, min_col=10, min_row=3, max_row=len(spec.p) + 3)
    exp_series = Series(exp, x_values)
    chart.series.append(exp_series)

    # Style the lines
    s1 = chart.series[1]
    s1.marker.symbol = "triangle"
    s1.marker.graphicalProperties.solidFill = "FF0000"  # Marker filling
    s1.marker.graphicalProperties.line.solidFill = "FF0000"  # Marker outline

    s1.graphicalProperties.line.noFill = True

    s2 = chart.series[0]
    s2.graphicalProperties.line.solidFill = "00AAAA"
    s2.graphicalProperties.line.dashStyle = "sysDot"
    s2.graphicalProperties.line.width = 100050  # width in EMUs

    worksheet.add_chart(chart, 'A7')
    return worksheet
コード例 #11
0
def create_scatter(df, wb, sheet_name):
    df_columns = df.columns.tolist()
    ws = wb[sheet_name]
    chart = ScatterChart()
    chart.title = sheet_name
    chart.height = 15
    chart.width = 30

    chart.x_axis.scaling.max = max(df['timestamps'])
    chart.x_axis.scaling.min = min(df['timestamps'])
    chart.x_axis.title = df_columns[1]

    for i in df_columns:
        if i in sheet_name:
            chart.x_axis.title = i
    chart.y_axis.title = 'intensity_of_emotion'
    start_row = 2
    end_row = len(df) + 1

    x_values = Reference(ws, min_col=1, min_row=start_row, max_row=end_row)
    for i in range(df_columns.index('happy') + 1, df_columns.index('confused') + 2):
        values = Reference(ws, min_col=i, min_row=1, max_row=end_row)
        series = Series(values, x_values, title_from_data=True)
        chart.series.append(series)

    letter = get_column_letter(len(df_columns) + 2)
    ws.add_chart(chart, f"{letter}1")
コード例 #12
0
def createGraphs(disl, disl1):  #,disl2,disl3):
    #for i in range(1,len(disl)):

    res = 'Resistencia'
    rps = 'RPM'
    disl = [res] + disl
    disl1 = [rps] + disl1

    for g in range(1):
        graph.append(disl)
        graph.append(disl1)

    chart = ScatterChart()
    chart.title = 'R[Ω] vs RPM'
    chart.x_axis.title = 'RPM'
    chart.y_axis.title = 'R[Ω]'
    xvals = Reference(graph, min_col=2, min_row=1, max_col=len(disl))
    #for s in range(1,len(disl)): #10
    values = Reference(graph, min_col=2, min_row=2, max_col=len(disl))
    series = Series(values, xvals, title_from_data=True)
    chart.series.append(series)
    #chart.add_data(values)
    #s = chart.series[1]
    graph.add_chart(chart, "M1")
    wb.save(filesheet)
コード例 #13
0
def _create_chart(worksheet):
    """Create the f*****g chart"""
    chart = ScatterChart()
    chart.varyColors = True
    chart.title = "Financial Analysis"
    chart.style = 1
    chart.height = 10
    chart.width = 20
    chart.x_axis.title = "Financial Quarter"
    chart.y_axis.title = "Cost"
    chart.legend = None
    chart.x_axis.majorUnit = 0.5
    chart.x_axis.minorGridlines = None
    #   chart.y_axis.majorUnit = 200

    xvalues = Reference(worksheet, min_col=1, min_row=3, max_row=6)
    picker = _color_gen()
    for i in range(2, 7):
        values = Reference(worksheet, min_col=i, min_row=2, max_row=6)
        series = Series(values, xvalues, title_from_data=True)
        series.smooth = True
        series.marker.symbol = "circle"
        line_prop = LineProperties(solidFill=next(picker))
        series.graphicalProperties.line = line_prop
        chart.series.append(series)
    worksheet.add_chart(chart, "G1")
    return worksheet
コード例 #14
0
    def drawScatterChart(self, fileName, sheetName, saveFileName = None):

        if saveFileName is None:
            saveFileName = fileName

        wb = load_workbook(fileName)
        ws = wb['gegevens']

        chart = ScatterChart()
        chart.title = "Scatter Chart"
        chart.style = 13
        chart.x_axis.scaling.min = 19
        chart.x_axis.scaling.max = 31
        chart.y_axis.scaling.min = 110
        chart.y_axis.scaling.max = 140
        chart.x_axis.title = 'gewicht'
        chart.y_axis.title = 'lengte'

        chart.legend = None

        xvalues = Reference(ws, min_col=6, min_row=2, max_row=101)
        values = Reference(ws, min_col=7, min_row=2, max_row=101)
        #fill x and y, skip first
        x=[]
        y=[]
        iterrows = iter(ws.rows)
        next(iterrows)
        for row in iterrows:
            x.append(row[5].value)
            y.append(row[6].value)

        series = Series(values, xvalues)
        series.graphicalProperties.line.noFill = True

        series.marker = marker.Marker('circle', 5.2)

        chart.series.append(series)

        # Style the lines
        s1 = chart.series[0]
        s1.marker.symbol = "circle"
        s1.marker.graphicalProperties.solidFill = "4076A9"  # Marker filling
        s1.marker.graphicalProperties.line.solidFill = "4076A9"  # Marker outline

        s1.graphicalProperties.line.noFill = True

        ws = wb[sheetName]

        ws.add_chart(chart, "L7")

        wb.save(saveFileName)

        area = np.pi * 20
        plt.scatter(x, y, s=area, alpha=1)
        plt.xlabel("gewicht")
        plt.ylabel("lengte")
        plt.grid(True,alpha=0.5)
        plt.axis([19,31,110,140])
        plt.show()
コード例 #15
0
def copyToSheet(die, test):

    dieSheets = []
    for sheet in range(len(clSheets)):
        if die.lower() in clSheets[sheet].lower() and test.lower(
        ) in clSheets[sheet].lower():
            dieSheets.append(clSheets[sheet])

    if len(dieSheets) > 0:

        print('Copying ' + die + ' ' + test)
        ws = lifetime.create_sheet(title=die + ' ' + test)
        pasteRow = 2
        for sheet in range(len(dieSheets)):
            active = clWings.sheets[dieSheets[sheet]]
            for i in range(1, 22):
                for j in range(1, 3):
                    ws.cell(row=i + pasteRow - 1,
                            column=j).value = active.range(
                                get_column_letter(j) + str(i + 32)).value
            pasteRow = pasteRow + 21

        ws.cell(row=1, column=1).value = '[Cl2] (ppm)'
        ws.cell(row=1, column=2).value = 'Response (nA)'
        ws.cell(row=1, column=3).value = 'Calibration (nA)'
        ws.cell(row=1, column=5).value = 'Slope'
        ws.cell(row=2, column=5).value = 'Intercept'
        ws.cell(
            row=1,
            column=6).value = clWings.sheets[dieSheets[0]].range('B12').value
        ws.cell(
            row=2,
            column=6).value = clWings.sheets[dieSheets[0]].range('B13').value

        for i in range(2, ws.max_row):
            ws.cell(row=i, column=3).value = float(ws['F1'].value) * float(
                ws.cell(row=i, column=1).value) + float(ws['F2'].value)

        chart = ScatterChart()
        chart.title = str(die + ' ' + test + ' Lifetime (' +
                          str(len(dieSheets)) + 'Calibrations)')
        chart.x_axis.title = '[Cl2] (ppm)'
        chart.y_axis.title = 'Response (nA)'

        xvalues = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row)
        roamValues = Reference(ws, min_col=2, min_row=1, max_row=ws.max_row)
        roamSeries = Series(roamValues, xvalues, title_from_data=True)
        calValues = Reference(ws, min_col=3, min_row=1, max_row=ws.max_row)
        calSeries = Series(
            calValues,
            xvalues,
            title_from_data=True,
        )
        roamSeries.marker = openpyxl.chart.marker.Marker('x')
        roamSeries.graphicalProperties.line.noFill = True
        chart.series.append(roamSeries)
        chart.series.append(calSeries)

        cs.add_chart(chart, 'A' + str(len(lifetime.worksheets) * 15 - 29))
コード例 #16
0
    def graph_bake(self, parameters: BakingGraphParameters):
        last_row = parameters.num_rows + 1
        start_row = 2
        start_column = 2

        x_axis_title = "{} Time from start (hr)".format(u"\u0394")
        y_axis_title = "{} Wavelength (pm)".format(u"\u0394")
        y_axis_title_sensitivity = "Drift (mK)"
        y_axis_title_temperature = "{} Temperature (K)".format(u"\u0394")
        x_values = Reference(parameters.data_sheet, min_col=start_column, min_row=start_row, max_row=last_row)
        for i, fbg_name in enumerate(self.fbg_names):
            chart_title = "{} {} Wavelength (pm) vs. {} Time from start ; {}"\
                .format(fbg_name, u"\u0394", u"\u0394", self.excel_file_name)
            chart = ScatterChart()
            y_values = Reference(parameters.data_sheet, min_col=self._get_baking_wavelength_column(i),
                                 min_row=start_row, max_row=last_row)
            series = self.create_series_bake(x_values, y_values, i)
            chart.series.append(series)

            trend_values = Reference(parameters.data_sheet, min_col=parameters.trend_line_indexes[i] + 1,
                                     min_row=start_row, max_row=last_row)
            series = Series(trend_values, x_values, title="Trend (pm)")
            chart.series.append(series)
            format_chart(chart, x_axis_title, y_axis_title, chart_title)
            parameters.chart_sheet.add_chart(chart, "B{}".format(30*i + 2))

            if self._valid_sensitivities():
                sensitivity_chart_title = "{} drift (mK) vs. {} Time from start; {}"\
                    .format(fbg_name, u"\u0394", self.excel_file_name)
                sensitivity_chart = ScatterChart()
                sensitivity_values = Reference(parameters.data_sheet, min_col=parameters.sensitivity_indexes[i] + 1,
                                               min_row=start_row, max_row=last_row)
                series = Series(sensitivity_values, x_values, title="Drift (mK)")
                sensitivity_chart.series.append(series)
                format_chart(sensitivity_chart, x_axis_title, y_axis_title_sensitivity, sensitivity_chart_title)
                parameters.chart_sheet.add_chart(sensitivity_chart, "V{}".format(30 * i + 2))

        temperature_graph_start_column = "AO" if self._valid_sensitivities() else "V"
        chart_title = "{0} Temperature vs. {0} Time from start; {1}".format(u"\u0394", self.excel_file_name)
        chart = ScatterChart()
        values = Reference(parameters.data_sheet, min_col=2, min_row=start_row, max_row=last_row)
        series = Series(values, x_values, title="{} Temperature (K)".format(u"\u0394"))
        chart.series.append(series)
        format_chart(chart, x_axis_title, y_axis_title_temperature, chart_title)
        parameters.chart_sheet.add_chart(chart, "{}2".format(temperature_graph_start_column))
コード例 #17
0
def get_chart():
    "Returns schatter chart for example"
    chart = ScatterChart()
    chart.height = 10
    chart.width = 15
    chart.style = 2
    chart.x_axis.title = "X"
    chart.y_axis.title = "Y"
    return chart
コード例 #18
0
ファイル: graph.py プロジェクト: dariofigliuzzi/airportPE
def all_sheets(sheet_name):
    chart = ScatterChart()
    chart.title = "Scatter Chart"
    chart.style = 2
    last_index_landing, last_index_parking, last_index_takeoff = 0, 0, 0
    ws = wb[sheet_name]
    for i in range(2, ws.max_row + 2):
        for j in range(8, 19, 5):
            if ws.cell(row=i, column=j).value is None:
                if j == 8 and last_index_landing == 0:
                    last_index_landing = i - 1
                elif j == 13 and last_index_parking == 0:
                    last_index_parking = i - 1
                elif j == 18 and last_index_takeoff == 0:
                    last_index_takeoff = i - 1

    print(last_index_landing, last_index_parking, last_index_takeoff)

    # -------------------LANDING---------------------------------------------

    x_landing = Reference(ws, min_col=8, min_row=2, max_row=last_index_landing)
    y_landing = Reference(ws, min_col=9, min_row=2, max_row=last_index_landing)
    seriesLanding = Series(y_landing, x_landing, title="landing_queue")
    chart.series.append(seriesLanding)

    # -------------------TAKEOFF---------------------------------------------

    x_takeoff = Reference(ws,
                          min_col=18,
                          min_row=2,
                          max_row=last_index_takeoff)
    y_takeoff = Reference(ws,
                          min_col=19,
                          min_row=2,
                          max_row=last_index_takeoff)
    seriesTakeoff = Series(y_takeoff, x_takeoff, title="takeoff_queue")
    chart.series.append(seriesTakeoff)

    # -------------------PARKING---------------------------------------------

    x_parking = Reference(ws,
                          min_col=13,
                          min_row=2,
                          max_row=last_index_parking)
    y_parking = Reference(ws,
                          min_col=14,
                          min_row=2,
                          max_row=last_index_parking)
    seriesParking = Series(y_parking, x_parking, title="parking_queue")
    chart.series.append(seriesParking)

    # -----------------------------------------------------------------------

    ws.add_chart(chart, "A10")

    wb.save(file)
コード例 #19
0
ファイル: cfiojobs.scatter.py プロジェクト: will-mei/cfiojobs
def draw_lateral_pattern_scatterchart(data_work_book, data_columns_list):
    # build a new work sheet for contrast charts 
    data_work_book.create_sheet(title='Lateral Contrast LineChart', index=0)
    tmp_dict = get_pattern_rows_map(data_work_book)
    #print(tmp_dict['4kread'].keys())
    # plot chart 
    column_num = 0
    for data_column in data_columns_list:
        #column_position = cu.num2letter(column_num *8 +1)
        column_position = cu.num2letter(column_num *9 +1)
        column_num = column_num +1
        # get pattern info in sheets combined together. 
        pattern_num = 0 
        for pattern_name in cu.bp_sort(tmp_dict.keys(), screening=True):
            # 4mwrite
            #row_position = str(pattern_num *16 +1)
            #row_position = str(pattern_num *22 +1)
            row_position = str(pattern_num *26 +1)
            pattern_num = pattern_num +1
            chart_position = column_position + row_position
            #print(chart_position)
            # chart format 
            chart = ScatterChart()
            #chart.height = 10 
            chart.height = 12 
            chart.width  = 17 
            chart.title = str(pattern_name)
            chart.legend.position = 't'
            tmp_sheet = tmp_dict[pattern_name].keys()[0]
            chart.x_axis.title = wb[tmp_sheet][str(cu.num2letter(data_column)) + '1'].value 
            chart.y_axis.title = 'latency(ms)'
            # turn majorGridlines off using shapes.GraphicalProperties and drawing.LineProperties
            #chart.y_axis.majorGridlines.spPr = GraphicalProperties(noFill = 'True')
            #chart.y_axis.majorGridlines.spPr.ln = LineProperties(solidFill = '000000')
            #chart.x_axis.majorGridlines = ChartLines()
            chart.x_axis.majorGridlines.spPr = GraphicalProperties(noFill=True)
            chart.x_axis.majorGridlines.spPr.ln = LineProperties(solidFill = 'F0F0F0')
            #chart.dLbls = DataLabelList()
            #chart.dLbls.showVal = 0
            # add info from different sheet for a certain pattern , 'sheet1':[n,n+1]
            line_set_info = tmp_dict[pattern_name]
            #print(line_set_info)
            for sheetN_set_name in line_set_info.keys():
                line_title = str(sheetN_set_name)
                line_set = line_set_info[sheetN_set_name]
                #print(sheetN_set_name,line_set)
                # width (samples name)
                xvalues = Reference(data_work_book[sheetN_set_name], min_col=1, min_row=line_set[0], max_row=line_set[-1])
                # height (value point)
                yvalues = Reference(data_work_book[sheetN_set_name], min_col=data_column, min_row=line_set[0], max_row=line_set[-1])
                series  = Series(yvalues, xvalues, title=line_title)
                chart.series.append(series)
            wb['Lateral Contrast LineChart'].add_chart(chart, chart_position)
コード例 #20
0
def create_chart(temperatures: List[float], extra_point_temperatures: List[float]=None) -> ScatterChart:
    chart = ScatterChart()
    chart.scatterStyle = "smoothMarker"
    temperatures_copy = [t for t in temperatures]
    if extra_point_temperatures is not None:
        for extra in extra_point_temperatures:
            for temperature in temperatures:
                if math.isclose(extra, temperature, abs_tol=0.5):
                    temperatures_copy.remove(temperature)
    chart.x_axis.scaling.min = round(temperatures_copy[0], 1) - 1
    chart.x_axis.scaling.max = round(temperatures_copy[-1], 1) + 1
    return chart
コード例 #21
0
def __writeCharts(sheet: Worksheet, tests: Iterable[str], order: Iterable[str],
                  charts: Iterable[Tuple[str, str]], data: Dict[str,
                                                                dict]) -> None:
    row = 1
    bound_scale = 10

    def updateBounds(bounds, x_data, y_data):
        from statistics import mean
        if not bounds:
            bounds = [0, 0, 0, 0, 0, 0, 0]
        bounds[0] = min(bounds[0], *x_data)
        bounds[1] = max(bounds[1], *x_data)
        bounds[2] = mean(bounds[2], *x_data)
        bounds[3] = min(bounds[3], *y_data)
        bounds[4] = max(bounds[4], *y_data)
        bounds[5] = mean(bounds[5], *y_data)
        return bounds

    for seq in order:
        col = 0
        for (typeX, typeY) in charts:
            chart = ScatterChart(scatterStyle='lineMarker')
            chart.title = seq
            chart.x_axis.title = typeX
            chart.y_axis.title = typeY
            chart.visible_cells_only = False
            bounds = None
            for test in tests:
                #bounds = updateBounds(bounds, data[seq][test][__DATA][typeX], data[seq][test][__DATA][typeY])
                rX = data[seq][test][typeX]
                rY = data[seq][test][typeY]
                series = Series(Reference(sheet,
                                          min_col=rY.min_col,
                                          max_col=rY.max_col,
                                          min_row=rY.min_row),
                                Reference(sheet,
                                          min_col=rX.min_col + 1,
                                          max_col=rX.max_col,
                                          min_row=rX.min_row),
                                title_from_data=True)
                series.marker.symbol = 'auto'
                chart.series.append(series)
            if bounds:
                sheet.x_axis.scaling.min = max(
                    bounds[0] - bounds[2] / bound_scale, 0)
                sheet.x_axis.scaling.max = bounds[1] + bounds[2] / bound_scale
                sheet.y_axis.scaling.min = max(
                    bounds[3] - bounds[5] / bound_scale, 0)
                sheet.y_axis.scaling.max = bounds[4] + bounds[5] / bound_scale
            sheet.add_chart(chart, get_column_letter(7 + col) + str(row))
            col += 9
        row += 15
コード例 #22
0
    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')
コード例 #23
0
def format_graph(chart_data, multiple=None):
    wb = load_workbook(chart_data)
    ws = wb['Graph']

    # dimensions of the excel data ===> A1:D6
    table_dimension = ws.dimensions

    #split dimensions to [A1, D6]
    table_dimension = table_dimension.split(':')
    print(table_dimension)

    col_row_list = []

    #do this to split table_dimensions into columns and rows ===> [A, 1, D, 6]
    for col_row in table_dimension:
        for x in col_row:
            if x.isnumeric():
                ind = col_row.index(x)
                col_row_list.append(col_row[:ind])
                col_row_list.append(col_row[ind:])
                break
    print(col_row_list)

    #use the ord method to convert letters to numbers ==> [A, 1, D, 6] = [1, 1, 4, 6]
    y = [ord(i.lower()) - 96 if i.isalpha() else int(i) for i in col_row_list]

    min_column = y[0] + 1
    min_row = y[1]
    max_column = y[2]
    max_row = y[3]

    chart = ScatterChart()
    chart.title = "Graph"
    chart.style = 2
    chart.x_axis.title = 'Distance'
    chart.y_axis.title = 'RSSI'

    x_data = Reference(ws,
                       min_col=min_column,
                       min_row=min_row + 1,
                       max_row=max_row)

    for i in range(min_column + 1, max_column + 1):
        values = Reference(ws, min_col=i, min_row=min_row, max_row=max_row)
        series = Series(values, x_data, title_from_data=True)
        chart.series.append(series)

    ws.add_chart(chart, "G10")

    wb.save(chart_data)
コード例 #24
0
def build_scatter_with_mean_stdev(xvalues_refs, yvalues_refs, stdev_refs, titles, errDir='y'):
    """Given x values, a list of y values, and the y values' corresponding
    stdev, it will return a scatter chart with stdev as error bars"""
    if len(yvalues_refs) != len(stdev_refs) != len(titles):
        raise ValueError("y-values and stdev list length must be the same")
    chart = ScatterChart()
    for xvalues, yvalues, stdev, title in zip(xvalues_refs, yvalues_refs, stdev_refs, titles):
        # convert reference to data source
        stdev_data_source = data_source.NumDataSource(numRef=data_source.NumRef(f=stdev))
        error_bars = ErrorBars(errDir=errDir, errValType='cust', plus=stdev_data_source, minus=stdev_data_source)

        series = Series(yvalues, xvalues, title=title)
        series.errBars = error_bars
        chart.series.append(series)
    return chart
コード例 #25
0
ファイル: rcf.py プロジェクト: banillie/Portfolio_Finance
def _generate_chart(worksheet, top_row: int,
                    leftmost_col: int) -> ScatterChart:
    chart = ScatterChart()
    chart.title = "RCF"
    chart.style = 13
    chart.height = 18
    chart.width = 28
    chart.x_axis.title = "Days"
    chart.y_axis.title = "Milestone Type"
    xvalues = Reference(worksheet, min_col=3, min_row=10, max_row=33)
    yvalues = Reference(worksheet, min_col=4, min_row=10, max_row=33)
    series = Series(yvalues, xvalues)
    series.marker.size = 6
    chart.series.append(series)
    return chart
コード例 #26
0
ファイル: GTT_output.py プロジェクト: Kram951/GTT
def createEXCEL(fileName, dic):
    if fileName is None or dic is None:
        print("Error occurred")
        return

    headers = ['x', 'y']
    wb = Workbook()
    ws = wb.active

    # Create table headers
    ws.append(headers)

    # Create ordered table
    for k, v in sorted(dic.items(), key=operator.itemgetter(0)):
        ws.append([k, v])

    # Center all cels
    for col in ws.columns:
        for cell in col:
            cell.alignment = Alignment(horizontal="center")

    # Border + background for headers
    thin_border = Border(left=Side(style='thin'),
                         right=Side(style='thin'),
                         top=Side(style='thin'),
                         bottom=Side(style='thin'))
    for i in range(len(dic) + 1):
        for j in range(len(headers)):
            ws.cell(row=i + 1, column=j + 1).border = thin_border
            if i == 0:
                ws.cell(1, j + 1).fill = PatternFill(start_color="FFC7CE",
                                                     end_color="FFC7CE",
                                                     fill_type="solid")

    # Create graph
    chart = ScatterChart()
    chart.title = "LineChart"
    chart.style = 13
    chart.x_axis.title = 'X'
    chart.y_axis.title = 'Y'
    chart.legend = None
    x = Reference(ws, min_col=1, min_row=2, max_col=1, max_row=(len(dic) + 1))
    y = Reference(ws, min_col=2, min_row=2, max_col=2, max_row=(len(dic) + 1))
    s = Series(y, xvalues=x)
    chart.append(s)

    ws.add_chart(chart, "E4")
    wb.save(fileName + ".xlsx")
コード例 #27
0
def export():
    print("in export")
    # get all data
    restaurant_list = Restaurant.query.all()
    # print(restaurant_list)
    # create the excel workbook
    wb = Workbook()
    sheet = wb.active
    style_headline = 'Headline 1'
    style_data = 'Headline 1'

    # header
    sheet.cell(row=1, column=1).value = 'Bill'
    sheet.cell(row=1, column=1).style = style_headline
    sheet.cell(row=1, column=2).value = 'Tip'
    sheet.cell(row=1, column=2).style = style_headline
    # data
    row_index = 2
    for restaurant in restaurant_list:
        sheet.cell(row=row_index, column=1).value = restaurant.bill
        sheet.cell(row=row_index, column=1).style = style_data

        sheet.cell(row=row_index, column=2).value = restaurant.tip
        sheet.cell(row=row_index, column=2).style = style_data
        row_index += 1

    # add chart
    chart = ScatterChart()
    chart.title = "Scatter Chart"
    chart.style = 13
    chart.x_axis.title = 'Bill Amount'
    chart.y_axis.title = 'Tip Amount'

    xvalues = Reference(sheet, min_col=1, min_row=2, max_row=1001)
    for i in range(2, 3):
        values = Reference(sheet, min_col=i, min_row=1, max_row=1001)
        series = Series(values, xvalues, title_from_data=True)
        chart.series.append(series)

    sheet.add_chart(chart, "D1")

    filename = "restaurant.xlsx"
    full_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
    print("full_path", full_path)
    # save the workbook
    wb.save(full_path)

    return send_file(full_path, as_attachment=True)
コード例 #28
0
    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 />')
コード例 #29
0
def single_cell_slope_trace_chart(column, column_slope_charts, chart_name,
                                  row_charts, row_number, sheet, slope_name,
                                  slope_time, time_column):
    # single_cell_slope_trace_chart function generates 1 scatter chart within the file for each of the traces where:
    #   x_axis = slope_time
    #   y_axis = Fura2 fluorescence.#
    # column_individual_trace_charts: Determines the column where the chart will be created
    # experiment_number: Used as the chart title.
    # file_max_row: calculated by any of the analysis functions.
    # row_individual_trace_charts: Determines the column where the chart will be created

    chart_cell = sheet.cell(row=row_charts,
                            column=column_slope_charts).coordinate

    chart = ScatterChart()
    chart.style = 2
    chart.title = f"{chart_name}: {slope_name} slope"
    chart.y_axis.title = "Fura2 fluorescence ratio (a.u)"
    chart.x_axis.title = "Time (s)"
    chart.legend = None
    chart.height = 7.5  # default is 7.5
    chart.width = 15  # default is 15
    chart.x_axis.majorUnit = 10
    ca_ex_st.style_chart(chart.title, chart)

    xvalues = Reference(sheet,
                        min_col=time_column,
                        min_row=row_number + 1,
                        max_col=time_column,
                        max_row=row_number + 1 + slope_time)
    yvalues = Reference(sheet,
                        min_col=column,
                        min_row=row_number + 1,
                        max_col=column,
                        max_row=row_number + 1 + slope_time)
    series = Series(yvalues, xvalues)
    series_trendline = Series(yvalues, xvalues)
    chart.series.append(series)
    chart.series.append(series_trendline)

    line = chart.series[0]
    line.graphicalProperties.line.noFill = True
    line.trendline = Trendline(dispRSqr=True, dispEq=True)

    sheet.add_chart(chart, chart_cell)
コード例 #30
0
def main():
    wb = openpyxl.Workbook()
    start_generator = _start_cells()
    segment_series_generator = _segment_series()
    for p in range(1, 31):
        proj_num, st_row = _row_calc(p)
        wb = milestone_swimlane(st_row,
                                proj_num,
                                wb,
                                block_start_row=90,
                                interested_range=365)[0]

    chart = ScatterChart()
    chart.title = "Swimlane Chart"
    chart.style = 1
    chart.x_axis.title = 'Days from Today'
    chart.y_axis.title = 'Project No'

    derived_end = 2

    for p in range(1, NUMBER_OF_PROJECTS):
        for i in range(
                1, 8
        ):  # 8 here is hard-coded number of segments within a project series (ref: dict in _segment_series()
            if i == 1:
                inner_start_row = derived_end
            else:
                inner_start_row = derived_end
            _inner_step = next(segment_series_generator)[1]
            series, derived_end = _series_producer(wb.active, inner_start_row,
                                                   _inner_step)
            if _inner_step == 1:
                series.marker.symbol = "triangle"
                series.marker.graphicalProperties.solidFill = "01a852"
            else:
                series.marker.symbol = "square"
                series.marker.graphicalProperties.solidFill = "FF0000"
            series.marker.size = 10
            chart.series.append(series)
        start_generator = _start_cells()
        segment_series_generator = _segment_series()
        derived_end = derived_end + 1

    wb.active.add_chart(chart, "E1")
    wb.save(os.path.join(DESKTOP, 'output.xlsx'))