예제 #1
0
def _add_series(chart: ScatterChart, index: int, temperature_column: int,
                series_parameters: SeriesParameters, cycle: int = None):
    start_row = CALIBRATION_START_ROW
    end_row = series_parameters.last_row
    extra_point_indexes = []
    if cycle is not None and series_parameters.extra_point_temperatures is not None:
        for temperature in series_parameters.extra_point_temperatures:
            for row_number in range(start_row, end_row+1):
                column_letter = get_column_letter(temperature_column)
                column = "{}{}".format(column_letter, row_number)
                excel_temperature = series_parameters.data_sheet[column].value
                if math.isclose(temperature, excel_temperature, abs_tol=.5):
                    extra_point_indexes.append(row_number - 1)
    for i in extra_point_indexes:
        if i < 2:
            start_row += 1
        else:
            end_row -= 1
    x_values = Reference(series_parameters.data_sheet, min_col=temperature_column, min_row=start_row, max_row=end_row)
    y_values = Reference(series_parameters.data_sheet, min_col=series_parameters.indexes[index] + 1,
                         min_row=start_row, max_row=end_row)
    series_title = series_parameters.sub_type.get_series_title(cycle)
    series = Series(xvalues=x_values, values=y_values, title=series_title)
    series.marker = marker.Marker(MARKERS[index % len(MARKERS)])
    series.marker.size = 12
    chart.series.append(series)
    return index + 1
예제 #2
0
 def create_series_bake(self, x_values: Reference, y_values: Reference, index: int) -> Series:
     series = Series(values=y_values, xvalues=x_values, title=self.fbg_names[index])
     rgb_percent = RGBPercent(*hex_to_rgb(index))
     series.marker = marker.Marker(symbol=MARKERS[index % len(MARKERS)],
                                   spPr=GraphicalProperties(solidFill=ColorChoice(rgb_percent)))
     series.graphicalProperties.line.noFill = True
     return series
예제 #3
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))
예제 #4
0
def plot_inside_excel():
    wb = load_workbook(filename=saints_excel_name)
    # Active WorkSheet
    ws = wb.active

    chat1 = ScatterChart()
    # style = MinMax(allow_none=True, min=1, max=48)
    # chat1.style = 7
    chat1.title = '2020 One Year Bible Study'
    chat1.x_axis.title = 'Date'
    chat1.y_axis.title = 'Time(o\'clock)'
    # set major/minor unit and max value of y axis
    chat1.y_axis.majorUnit = 1
    chat1.y_axis.minorUnit = 1
    chat1.y_axis.scaling.max = 24
    chat1.y_axis.scaling.min = 0
    # enlarge the chart, default is too small
    # width = 15 # in cm, approx 5 rows
    # height = 7.5 # in cm, approx 14 rows
    chat1.height = chat1.height + 8
    chat1.width = chat1.width + 32

    xvalues = Reference(ws, min_col=2, min_row=2, max_row=ws.max_row)
    for i in range(len(saint_name_list)):
        values = Reference(ws, min_col=8 + i, min_row=2, max_row=ws.max_row)
        series = Series(values,
                        xvalues,
                        title=saint_name_list[i],
                        title_from_data=False)
        #  {'triangle', 'dash', 'x', 'auto', 'diamond', 'circle', 'star',
        #   'picture', 'square', 'dot', 'plus'}
        series.marker = openpyxl.chart.marker.Marker('circle')
        series.graphicalProperties.line.noFill = True
        chat1.series.append(series)

    ws.add_chart(chat1, "A10")
    wb.save(filename=saints_excel_name)
예제 #5
0
파일: FDIM.py 프로젝트: grkidwell/Gen5VTT
ws1.cell(column=7, row=1, value="Phase(Degrees)")
ws1.cell(column=8, row=1, value="Voltage Amplitude(V)")
ws1.cell(column=9, row=1, value="Current Amplitude(A)")

# Test done. Return to SVSC mode and switch Load off
generator_api.Generator1SVSC(test_rail, 0, False)

# save data to excel and plot Z vs F
wb.save(filename=file_name)
chart = ScatterChart()
chart.title = "FDIM"
chart.style = 6
chart.x_axis.title = 'Frequency (kHz)'
chart.y_axis.title = 'Impedance (Ohms)'

xvalues = Reference(ws1, min_col=5, min_row=2, max_row=Row)
values = Reference(ws1, min_col=6, min_row=2, max_row=Row)
series = Series(values, xvalues, title_from_data=False)
chart.series.append(series)
series.marker = openpyxl.chart.marker.Marker('circle')
series.graphicalProperties.line.noFill = True

ws1.add_chart(chart, "G2")

wb.save(filename=file_name)
print(
    "--------------------------------------------------------------------------------"
)
print("")
print("Test complete. Results exported to Excel")