(๑•͈ᴗ•͈)❀送花给你

python:为Excel制作图表

导入Excel数据制作图表

import matplotlib.pyplot as plt
import pandas as pd
import xlwings as xw
#读取Excel数据制作图表再保存到Excel
def demo_Func5():
    df=pd.read_excel('C:\\Users\\14486\\Desktop\\测试文件\\左\\销售统计表.xlsx',engine="openpyxl")#从指定工作簿中读取数据
    figure=plt.figure()#创建一个绘图窗口
    plt.rcParams['font.sans-serif']=['SimHei']#为图表中的中文文本设置默认字体,避免乱码
    plt.rcParams['axes.unicode_minus']=False #解决坐标值为负数时,无法正常显示负号的问题
    x=df['材料名称']#指定月份为x坐标的值
    y=df['支出量']
    plt.bar(x,y,color='black')
    app=xw.App(visible=False)
    workbook=app.books.open('C:\\Users\\14486\\Desktop\\测试文件\\左\\销售统计表.xlsx')
    worksheet=workbook.sheets['产品销售统计']
    worksheet.pictures.add(figure,left=500)#在工作表中插入柱形图
    workbook.save()
    workbook.Close()
    app.quit()

制作散点图

    plt.scatter(x,y,s=500,color='red',marker='*')

制作面积图

    plt.stackplot(x,y,colors='red')

制作折线图表

#制作组合图表
def demo_Func6():
    df=pd.read_excel('C:\\Users\\14486\\Desktop\\测试文件\\左\\销售统计表.xlsx',engine="openpyxl")#从指定工作簿中读取数据
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 为图表中的中文文本设置默认字体,避免乱码
    plt.rcParams['axes.unicode_minus'] = False  # 解决坐标值为负数时,无法正常显示负号的问题
    x = df['材料名称']  # 指定月份为x坐标的值
    y1 = df['支出量']
    y2=df['现库存']
    plt.plot(x,y1,color='black',linewidth=4)#利用x y1 制作折线图
    plt.bar(x,y2,color='blue')#用x和y2制作柱形图
    plt.show()

为图表设置标题和坐标轴标题

#添加设置图表标题和坐标轴标题
def demo_Func7():
    df=pd.read_excel('C:\\Users\\14486\\Desktop\\测试文件\\左\\销售统计表.xlsx',engine="openpyxl")#从指定工作簿中读取数据
    figure=plt.figure()#创建一个绘图窗口
    plt.rcParams['font.sans-serif']=['SimHei']#为图表中的中文文本设置默认字体,避免乱码
    plt.rcParams['axes.unicode_minus']=False #解决坐标值为负数时,无法正常显示负号的问题
    x=df['材料名称']#指定月份为x坐标的值
    y=df['支出量']
    plt.bar(x,y,color='black')
    #真正工作
    plt.title(label='各水果销售情况',fontdict={'family':'KaiTi','color':'red','size':30},loc='left')#设置图表标题
    plt.xlabel('水果类型',fontdict={'family':'SimSun','color':'black','size':20},labelpad=20)#设置x轴标题
    plt.ylabel('销售数量',fontdict={'family':'SimSun','color':'black','size':20},labelpad=20)
    plt.show()

添加图例

plt.bar(x,y,color='black',label='销售数量')
plt.legend(loc='upper left',fontsize=20)#添加并设置图例   图例名=销售数量

 

posted @ 2021-10-08 21:53  胸前小红花  阅读(670)  评论(0)    收藏  举报