pyhton3中通过matplotlib做图表,导入excel制成图表

news/2024/7/21 4:30:38 标签: matplotlib, excel
1、导入数据制作散点图
import pandas as pd                           # 导入pandas模块
import matplotlib.pyplot as plt               # 导入matplotlib模块
import xlwings as xw                          # 导入matplotlib模块
df = pd.read_excel('销售业绩表.xlsx')          # 从指定工作簿中获取数据
figure = plt.figure()                         # 绘制一个绘图窗口
plt.rcParams['font.sans-serif'] = ['SimHei']  # 为图表的中文文本设置默认字体,以避免中文显示乱码问题
plt.rcParams['axes.unicode_minus'] = False    # 解决坐标值为复数时无法显示负号的问题
 
x = df['月份']        # 指定’月份‘列为X轴
y = df['销售额']      # 指定’销售额‘列为Y轴
 
plt.scatter(x, y, s=500, color='red', marker='*', label = '销售额')    # 制作散点图
plt.legend(loc = 'upper left', fontsize = 20)    # 添加并设置图例
 
# 添加并设置图表标题、X轴标题、Y轴标题
plt.title(label = '各月销售额对比图', fontdict = {'family' : 'KaiTi', 'color' : 'red', 'size' : 30}, loc = 'left')
plt.xlabel('月份', fontdict = {'family' : 'SimSun', 'color' : 'black', 'size' : 20}, labelpad = 20)
plt.ylabel('销售额', fontdict = {'family' : 'SimSun', 'color' : 'black', 'size' : 20}, labelpad = 20)
# plt.show()           # 直接显示图表
 
app = xw.App(visible = False)                  # 启动Excel程序
workbook = app.books.open('销售业绩表.xlsx')    # 打开要插入图表的工作铺
worksheet = workbook.sheets['销售业绩']         # 选中要插入图表的工作表
worksheet.pictures.add(figure, left=500)     # 在工作铺中插入散点图
workbook.save()        # 保存工作铺
workbook.close()       # 关闭工作铺
app.quit()             # 退出程序
 
2、导入数据制作柱形图
import pandas as pd                           # 导入pandas模块
import matplotlib.pyplot as plt               # 导入matplotlib模块
import xlwings as xw                          # 导入matplotlib模块
df = pd.read_excel('销售业绩表.xlsx')          # 从指定工作簿中获取数据
figure = plt.figure()                         # 绘制一个绘图窗口
plt.rcParams['font.sans-serif'] = ['SimHei']  # 为图表的中文文本设置默认字体,以避免中文显示乱码问题
plt.rcParams['axes.unicode_minus'] = False    # 解决坐标值为复数时无法显示负号的问题
 
x = df['月份']        # 指定’月份‘列为X轴
y = df['销售额']      # 指定’销售额‘列为Y轴
 
plt.bar(x, y, color='red', label = '销售额')    # 制作柱形图,添加图例
plt.legend(loc = 'upper left', fontsize = 20)    # 添加并设置图例
 
# 添加并设置图表标题、X轴标题、Y轴标题
plt.title(label = '各月销售额对比图', fontdict = {'family' : 'KaiTi', 'color' : 'red', 'size' : 30}, loc = 'left')
plt.xlabel('月份', fontdict = {'family' : 'SimSun', 'color' : 'black', 'size' : 20}, labelpad = 20)
plt.ylabel('销售额', fontdict = {'family' : 'SimSun', 'color' : 'black', 'size' : 20}, labelpad = 20)
 
# 添加并设置数据标签
for a,b in zip(x, y):
    plt.text(a, b, b, fontdict = {'family' : 'KaiTi', 'color' : 'red', 'size': 20})
# plt.show()           # 直接显示图表
 
app = xw.App(visible = False)                  # 启动Excel程序
workbook = app.books.open('销售业绩表.xlsx')    # 打开要插入图表的工作铺
worksheet = workbook.sheets['销售业绩']         # 选中要插入图表的工作表
worksheet.pictures.add(figure, left=500)     # 在工作铺中插入柱形图
workbook.save()        # 保存工作铺
workbook.close()       # 关闭工作铺
app.quit()             # 退出程序
3、导入数据制作面积图
import pandas as pd                           # 导入pandas模块
import matplotlib.pyplot as plt               # 导入matplotlib模块
import xlwings as xw                          # 导入matplotlib模块
df = pd.read_excel('销售业绩表.xlsx')          # 从指定工作簿中获取数据
figure = plt.figure()                         # 绘制一个绘图窗口
plt.rcParams['font.sans-serif'] = ['SimHei']  # 为图表的中文文本设置默认字体,以避免中文显示乱码问题
plt.rcParams['axes.unicode_minus'] = False    # 解决坐标值为复数时无法显示负号的问题
 
x = df['月份']        # 指定’月份‘列为X轴
y = df['销售额']      # 指定’销售额‘列为Y轴
plt.stackplot(x, y, color='red')    # 制作面积图
 
# 添加并设置图表标题、X轴标题、Y轴标题
plt.title(label = '各月销售额对比图', fontdict = {'family' : 'KaiTi', 'color' : 'red', 'size' : 30}, loc = 'left')
plt.xlabel('月份', fontdict = {'family' : 'SimSun', 'color' : 'black', 'size' : 20}, labelpad = 20)
plt.ylabel('销售额', fontdict = {'family' : 'SimSun', 'color' : 'black', 'size' : 20}, labelpad = 20)
# plt.show()           # 直接显示图表
 
app = xw.App(visible = False)                  # 启动Excel程序
workbook = app.books.open('销售业绩表.xlsx')    # 打开要插入图表的工作铺
worksheet = workbook.sheets['销售业绩']         # 选中要插入图表的工作表
worksheet.pictures.add(figure, left=500)     # 在工作铺中插入面积图
workbook.save()        # 保存工作铺
workbook.close()       # 关闭工作铺
app.quit()             # 退出程序
 
4、导入数据制作折线图
import pandas as pd                           # 导入pandas模块
import matplotlib.pyplot as plt               # 导入matplotlib模块
df = pd.read_excel('销售业绩表.xlsx')          # 从指定工作簿中获取数据
plt.rcParams['font.sans-serif'] = ['SimHei']  # 为图表的中文文本设置默认字体,以避免中文显示乱码问题
plt.rcParams['axes.unicode_minus'] = False    # 解决坐标值为复数时无法显示负号的问题
 
# 设置X轴和Y轴数据
x = df['月份']
y = df['销售额']
 
# 绘制折线图
plt.plot(x, y, color = 'red', linewidth = 3, linestyle = 'solid')
plt.grid(b = True, axis = 'y', color = 'red', linestyle = 'dashed', linewidth = 1)   # 添加网格线
# plt.ylim(0, 1200000)     # 设置Y轴的取值范围
 
# 添加并设置图表标题、X轴标题、Y轴标题
plt.title(label = '各月销售额对比图', fontdict = {'family' : 'KaiTi', 'color' : 'red', 'size' : 30}, loc = 'left')
plt.xlabel('月份', fontdict = {'family' : 'SimSun', 'color' : 'black', 'size' : 20}, labelpad = 20)
plt.ylabel('销售额', fontdict = {'family' : 'SimSun', 'color' : 'black', 'size' : 20}, labelpad = 20)
 
# 添加并设置数据标签
for a,b in zip(x, y):
    plt.text(a, b, b, fontdict = {'family' : 'KaiTi', 'color' : 'red', 'size': 20})
plt.show()   # 显示绘制的图表


http://www.niftyadmin.cn/n/5329063.html

相关文章

MFC为资源对话框添加消息处理函数和初始化控件

现在我VC6新建了一个对话框工程;又在资源添加了一个新的对话框,并为新的对话框添加了名为CTestDlg的类; 在主对话框的cpp文件包含#include "TestDlg.h"; 在主对话框的cpp文件的OnInitDialog()成员函数中,添…

2023年全国职业院校技能大赛高职组应用软件系统开发正式赛题—模块三:系统部署测试

模块三:系统部署测试(3 小时) 一、模块考核点 模块时长:3 小时模块分值:20 分本模块重点考查参赛选手的系统部署、功能测试、Bug 排查修复及文档编写能力,具体包括:系统部署。将给定项目发布到…

2.3数据链路层02

2.3 数据链路层 2.3.5 以太网 1、以太网概念 以太网是一种计算机局域网技术。IEEE(电气与电子工程师协会:Institute of Electrical and Electronics Engineers)组织的IEEE802.3标准制定了以太网的技术标准,它规定了包括物理层的…

异步编程——@Async与@EnableAsync使用

文章目录 使用思路基本使用规范常见问题——Async无效常见问题——添加EnableAsync注解后接口404 使用思路 异步场景及优势在此不多赘述。异步思路无非是在原本请求链路执行到某个环节时,将部分无需同步执行的操作交由主线程以外的其它线程执行。因此针对标题中两个…

Java运算符作用及解析

Java运算符是对变量或者常量进行操作的符号。以下是Java中常见运算符的解析: 赋值运算符:如“”,将右侧的值赋给左侧的变量。一元运算符:如“”“-”“!”,用于对变量进行操作。算术运算符:如“”“-”“*…

IP 网络分为接入网、城域网和骨干网

根据前述的IP 网络设计思想,结合算力网络对 正网络的需求分析,卫网络的具体实现可以从架构设计利网络技术两个方面进行总体设计。 首先从架构设计上考虑,架构应尽量简化,做到“以简应繁”。因此,整体网络架构不宜设计…

【困难】42. 接雨水

题目 42. 接雨水 42. 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组…

c语言中有趣的写法

str[n] "0123456789ABCDEF" [(dat[i] >> 4) & 0xF]; 这行代码主要做了两件事情: 计算一个数值。将这个数值赋值给 str[n]。 现在,我会详细解释每个部分: "0123456789ABCDEF":这是一个字符串&…