Python处理excel和绘图

处理excle

import pandas as pd

def excel_read(path,sheet):
    df = pd.read_excel(path, sheet_name=sheet)
    #读取第三列的数据
    column_data = df.iloc[:, 3]
    column_data_list = column_data.tolist()
    return column_data_list

if __name__ == '__main__':
    list1 = excel_read(r"D:\Book1.xlsx","Sheet2")
    print(list1)
    list2 = excel_read(r"C:\Users\fuwh2\Downloads\机器借用情况 1.xlsx","Sheet1")
    print(list2)
    for item in list1:
        if item in list2:
            continue
        else:
            print(item)


绘图

import matplotlib.pyplot as plt
import seaborn as sns
  def draw():
    # 输入数据
    x = ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
    y1 = [24, 24, 30, 58, 19, 9]
    # y2 = [5, 8, 11, 14, 16, 19, 23]
    # 设置颜色代码
    color1 = "#038355"  # 孔雀绿
    # color2 = "#ffc34e"  # 向日黄
    # 设置字体
    font = {'family': 'Times New Roman',
            'size': 12}
    plt.rc('font', **font)

    # 绘图
    sns.set_style("whitegrid")  # 设置背景样式
    sns.lineplot(x=x, y=y1, color=color1, linewidth=2.0, marker="o", markersize=10, markeredgecolor="red",
                 markeredgewidth=2.5)
    # sns.lineplot(x=x, y=y2, color=color2, linewidth=2.0, marker="s", markersize=8, markeredgecolor="white",
    #             markeredgewidth=1.5, label='Line 2')
    for i in range(len(x)):
        if i == 3:
            plt.text(x[i], y1[i] * 1.01, y1[i], fontsize=30, color="r", verticalalignment='bottom',
                     horizontalalignment='center', rotation=0)
        else:
            plt.text(x[i], y1[i] * 1.06, y1[i], fontsize=30, color="r", verticalalignment='bottom',
                     horizontalalignment='center', rotation=0)
    # 添加标题和标签
    plt.title("Total issues by every version", fontweight='bold', fontsize=45, pad=30)
    plt.xlabel("Version", fontsize=40)
    plt.ylabel("Issues", fontsize=40)

    # 添加图例
    # plt.legend(loc='upper left', frameon=True, fontsize=10)

    # 设置刻度字体和范围
    plt.xticks(fontsize=35)
    plt.yticks(fontsize=35)
    # plt.xlim(7, 11)
    plt.ylim(0, 60)

    # 设置坐标轴样式
    for spine in plt.gca().spines.values():
        spine.set_edgecolor("#CCCCCC")
        spine.set_linewidth(1.5)

    plt.savefig('lineplot.png', dpi=300, bbox_inches='tight')
    # 显示图像
    plt.show()