-
2021-04-27 02:52:11
Python对数据写入Execl文件并生成图表
需求:
为了做测试或者对爬虫程序爬取数据进行分析汇总,我们时常会将数据生成报表,但是如果我们想将报表生成在Excel中,这时候就可以借助xlsxwriter第三方包来生成图表
分析:
为生成excel准备多维数组类型的数据->数据插入到Excel中->对数据按系列划分生成图表
第一步:准备数据:
使用爬虫爬取网络上关于热门岗位的数据并生成多维数组类型,如下:
data = [ ['IOS岗位数', 'Android岗位数', 'Python岗位数', '物联网岗位数', 'Go与区块链岗位数'], [2000, 4000, 60000, 8000, 1000], ]
第二步:将数据插入Excel中
首先要创建一个Excel文件,然后在Excel中创建一个sheet表单页,最后将数据插入到sheet表单页中
1、创建一个Excel对象
workbook = xlsxwriter.Workbook('Excel名字.xlsx')
2、基于Excel对象创建一个sheet表单对象worksheet = workbook.add_worksheet(name='sheet表单的名字,不填写就默认为sheet1')
3、 将数据写入sheet表单页worksheet
worksheet.write_row( row, col, data, cell_format=None)
worksheet.write_column(row, col, data, cell_format=None)
3.1、可以用A1表示第一行第一列的那个单元格,这个时候后面的data可以是个数组,直接插入一行数据
worksheet.write_column('A1', 一列数据, 样式(非必填项))
worksheet.write_row('A1', 一行数据, 样式(非必填项))
具体代码如下:
# Write some data to add to plot on the chart. data = [ ['IOS岗位数', 'Android岗位数', 'Python岗位数', '物联网岗位数', 'Go与区块链岗位数'], [2000, 4000, 60000, 8000, 1000], ] worksheet.write_column('A1', data[0]) worksheet.write_column('B1', data[1])
第三步:生成图表
1.通过Workbook add_chart()方法创建图表对象,其中指定了图表类型:
chart = workbook.add_chart({'type': 'column'})
通过type定义图标的类型,比如是柱形图还是饼图
支持的图表类型是:
area:创建区域(实线)样式图表。
bar:创建条形样式(转置直方图)图表。
column:创建列样式(直方图)图表。
line:创建线型图表。
pie:创建饼图样式图表。
doughnut:创建圆环样式图表。
scatter:创建散点图样式图表。
stock:创建库存样式图表。
radar:创建雷达样式图表。
代码如下:# Create a new Chart object.chart = workbook.add_chart({'type': 'column'})2、添加图标要统计的数据,同一个报表可以添加多个系列
代码如下:
chart.add_series({ 'categories': '=Sheet1!$A$1:$A$5', 'values': '=Sheet1!$B$1:$B$5', 'line': {'color': 'red'}, 'name': '各岗位数汇总',})
categories:这将设置图表类别标签。该类别与X轴大致相同。在大多数图表类型中,该categories 属性是可选的,图表将仅假设一个顺序系列 1..n。
values:这是系列中最重要的属性,是每个图表对象的唯一必需选项。此选项将图表与其显示的工作表数据相链接。可以使用上面第一个示例中所示的公式或使用第二个示例中所示的值列表来设置数据范围。
line:设置系列线型的属性,如颜色和宽度。请参见图表格式:行。
name:设置系列的名称。名称显示在公式栏中。对于非饼图/圆环图,它也会显示在图例中。name属性是可选的,如果未提供,则默认为。名称也可以是公式,例如,包含工作表名称,行和列的列表。Series 1..n=Sheet1!$A$1['Sheet1', 0, 0]
如下图所示:
3、给图表定义名字和样式
代码如下:chart.set_title({'name': '各岗位数汇总_图表'})chart.set_style(10)
4、将图表插入到Excel中
代码如下:
# Insert the chart into the worksheet. worksheet.insert_chart('A7', chart)
5、关闭保存修改
代码如下:workbook.close()
更多相关内容 -
良心教程教你如何使用Excel简单绘制数据图表。
2020-07-06 19:19:24绘图的话,首先讲究的是美观,一般情况的下话,其实美不美观并不影响数据。但是绘图美观一般不是给自己看的,而是要给别人看,或者是把它做...建议:可以把数据图表颜色修改更加高大上的感觉,单元格也建议修改每行每列绘图的话,首先讲究的是美观,一般情况的下话,其实美不美观并不影响数据。但是绘图美观一般不是给自己看的,而是要给别人看,或者是把它做成PPT,所以绘图更讲究的是把数据可视化变成美观的数据图。
好看的定义:
非常酷炫,或者把数据美观的,富有逻辑感的数据呈现出来。可视化前,
可视化后的美感
好的废话不多说,直接上教程:
第一步:创建原始数据表格
第二步:插入条形图
注意上图这里要点击中“year”单元格,在点击树形图
建议:可以把数据图表颜色修改更加高大上的感觉,单元格也建议修改每行每列的颜色,最好层次分明,容易阅读。
第三步:把excel全局区域变白(其实就是为了美观简洁)
右键区域,选择全局区域,上色,全局推荐白色
第四步:行和列空行,这个选择abcdf......1234567.......其中任意一个行和列点击鼠标右键呼出插入就会多一行啦。
选择第一列,鼠标右键,插入元素
第五步:对图表(条形图)区域修改
技巧:点击图表鼠标右键,选择设置图表区域格式
自由填充可以对图表区域修改位置,信息等
好啦,基本大功告成,是不是很简单呢,如果是新手的话,建议多练习,才能为未来绘制高级的数据图表打下坚实的基础呢。 -
Redash开源的数据图表工具-其他
2021-06-12 08:52:07Redash旨在使任何人,无论技术水平如何,都可以利用大小数据的力量。SQL用户利用Redash来探索,查询,可视化和共享来自任何数据源的数据。他们的工作反过来使组织中的任何人都可以使用数据。每天,全球成千上万个... -
Python创建图表
2019-04-19 09:37:02资源选自《Python变成从入门到实践》一书,该书提供三个Python入门项目,此为第二个项目数据可视化,利用Python的matplotlib和Pygal模块提取数据生成一系列常见的图表,例如折线图、散点图、直方图,更多的图形类别... -
Excel中 如何使用不连贯的数据来创建图表(C#)
2016-09-23 16:54:11Excel中如何使用不连贯的数据来创建图表(C#) 我们一般在Excel中添加图表时,是直接选中所有数据区域,然后在点击菜单栏里插入按钮,选中要插入的图表类型,然后Excel会根据你选择的图表类型自动插入图表。 像下图...Excel中如何使用不连贯的数据来创建图表(C#)
我们一般在Excel中添加图表时,是直接选中所有数据区域,然后在点击菜单栏里插入按钮,选中要插入的图表类型,然后Excel会根据你选择的图表类型自动插入图表。像下图这样:
如果不像上图中那样使用所有的数据,只用其中的某几行数据来创建图表呢?这篇文章给大家分享一下如何实现这个功能的方法,这里我使用了一个Excel组件Spire.XLS(你可以从这里下载)。
下图是我的原始Excel文档,我将用第2、3、5、6、8、9行数据来创建图表,为了方便观看我使用的是哪些数据,这里我将第4、7行设置成了空白行,当然你的Excel文档里面可以不用设置空白行。
详细步骤如下:
步骤1:加载Excel文档并获取第一个工作表。
步骤2:插入一个条形图表并设置条形图表在工作表中的位置。Workbook book = new Workbook(); book.LoadFromFile("11班同学半期考试与期末考试总成绩比较表.xlsx"); Worksheet sheet = book.Worksheets[0];
步骤3:添加两个系列(Series)到图表,调用 XlsRange.AddCombinedRange(CellRange cr)方法来为图表设置多个不连贯的数据范围。Chart chart = sheet.Charts.Add(ExcelChartType.ColumnClustered); chart.SeriesDataFromRange = false; //设置图表位置 chart.LeftColumn = 5; chart.TopRow = 1; chart.RightColumn = 13; chart.BottomRow = 10;
//添加第一个Series var cs1 = (ChartSerie)chart.Series.Add(); cs1.Name = sheet.Range["B1"].Value; cs1.CategoryLabels = sheet.Range["A2:A3"].AddCombinedRange(sheet.Range["A5:A6"]).AddCombinedRange(sheet.Range["A8:A9"]); cs1.Values = sheet.Range["B2:B3"].AddCombinedRange(sheet.Range["B5:B6"]).AddCombinedRange(sheet.Range["B8:B9"]); cs1.SerieType = ExcelChartType.ColumnClustered; //添加第二个Series var cs2 = (ChartSerie)chart.Series.Add(); cs2.Name = sheet.Range["C1"].Value; cs2.CategoryLabels = cs2.CategoryLabels =sheet.Range["A2:A3"].AddCombinedRange(sheet.Range["A5:A6"]).AddCombinedRange(sheet.Range["A8:A9"]); cs2.Values = sheet.Range["C2:C3"].AddCombinedRange(sheet.Range["C5:C6"]).AddCombinedRange(sheet.Range["C8:C9"]); cs2.SerieType = ExcelChartType.ColumnClustered;
步骤4:保存文档。
book.SaveToFile("图表.xlsx", FileFormat.Version2010);
效果图:
图表中的网格线不好看?加上下面这句代码让它不显示就OK:
chart.PrimaryValueAxis.HasMajorGridLines = false;
完整代码奉上:
using Spire.Xls; using Spire.Xls.Charts; namespace 使用不连贯数据创建图表 { class Program { static void Main(string[] args) { Workbook book = newWorkbook(); book.LoadFromFile("11班同学半期考试与期末考试总成绩比较表.xlsx"); Worksheet sheet = book.Worksheets[0]; Chart chart = sheet.Charts.Add(ExcelChartType.ColumnClustered); chart.SeriesDataFromRange = false; //chart.PrimaryValueAxis.HasMajorGridLines = false; chart.LeftColumn = 5; chart.TopRow = 1; chart.RightColumn = 13; chart.BottomRow = 10; var cs1 = (ChartSerie)chart.Series.Add(); cs1.Name = sheet.Range["B1"].Value; cs1.CategoryLabels = sheet.Range["A2:A3"].AddCombinedRange(sheet.Range["A5:A6"]).AddCombinedRange(sheet.Range["A8:A9"]); cs1.Values = sheet.Range["B2:B3"].AddCombinedRange(sheet.Range["B5:B6"]).AddCombinedRange(sheet.Range["B8:B9"]); cs1.SerieType = ExcelChartType.ColumnClustered; var cs2 = (ChartSerie)chart.Series.Add(); cs2.Name = sheet.Range["C1"].Value; cs2.CategoryLabels = sheet.Range["A2:A3"].AddCombinedRange(sheet.Range["A5:A6"]).AddCombinedRange(sheet.Range["A8:A9"]); cs2.Values = sheet.Range["C2:C3"].AddCombinedRange(sheet.Range["C5:C6"]).AddCombinedRange(sheet.Range["C8:C9"]); cs2.SerieType = ExcelChartType.ColumnClustered; chart.ChartTitle = string.Empty; book.SaveToFile("图表.xlsx", FileFormat.Version2010); } } }
感谢您的阅读!
-
Pycharm利用Flask展示图表数据
2020-03-02 10:48:04日常工作中我们可能需要临时把数据分享给运营或者产品,如果购买或者开发一个新的框架成本比较高,那么我们可以用Flask做一个简单的数据展示进行分享。 flask 是python web开发的微框架,Echarts酷炫的功能主要是...日常工作中我们可能需要临时把数据分享给运营或者产品,如果购买或者开发一个新的框架成本比较高,那么我们可以用Flask做一个简单的数据展示进行分享。
flask 是python web开发的微框架,Echarts酷炫的功能主要是javascript起作用,将两者结合起来,发挥的作用更大。
一、安装Pycharm
Pycharm是当下比较流行的python的IDE,下面可以直接创建flask项目
首先到官网进行下载
安装可以选择到网上找可以用的激活码
二、创建Flask项目
File - new project里面直接创建一个Flask
创建完成后的目录
三、第一个项目
写一个最简单的程序
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
下面会出现如下结果
说明运行成功
打开里面的网址便会出现
四、创建第一个图表
首先要先pip install pyecharts
直接在pycharm里面打开终端进行下载
from flask import Flask from jinja2 import Markup from pyecharts import options as opts from pyecharts.charts import Bar app = Flask(__name__, static_folder="templates") def bar_base() -> Bar: c = ( Bar() .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]) .add_yaxis("商家A", [5, 20, 36, 10, 75, 90]) .add_yaxis("商家B", [15, 25, 16, 55, 48, 8]) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="AB数据对比")) ) return c @app.route("/") def index(): c = bar_base() return Markup(c.render_embed()) if __name__ == "__main__": app.run()
五、前后端分离
前后端分离可以更好的把图表精细化处理
我们需要下载一个文件echarts.min.js
选择在线定制,把下载的文件放在static里面
在templates里面建立一个html文件
app.py里面
from flask import * from pyecharts import options as opts from pyecharts.charts import Bar app = Flask(__name__) @app.route('/') def show_charts(): bar = ( Bar() .add_xaxis(["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]) .add_yaxis("商家A",[5, 20, 36, 10, 10, 20]) .add_yaxis("商家B", [15, 25, 16, 55, 48, 8]) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="AB数据对比")) ) return render_template('show_charts.html', bar_options=bar.dump_options()) if __name__ == "__main__": app.run(debug = True)
show_charts.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ECharts</title> <!-- 引入 echarts.js 这里使用flask的url_for--> <script src="{{ url_for('static', filename='echarts.min.js') }}"></script> </head> <body> <!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="width: 600px;height:400px;"></div> <script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); // 指定图表的配置项和数据 var option ={{ bar_options | safe }}; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); </script> </body> </html>
六、多图展示
代码:
from flask import * from pyecharts import options as opts from pyecharts.charts import Bar,Pie app = Flask(__name__) @app.route('/') def show_charts(): bar = ( Bar() .add_xaxis(["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]) .add_yaxis("商家A",[5, 20, 36, 10, 10, 20]) .add_yaxis("商家B", [15, 25, 16, 55, 48, 8]) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="AB数据对比")) ) pie = ( Pie() .add("", [("商家A", 100), ("商家B", 88), ("商家C", 166)]) .set_global_opts(title_opts=opts.TitleOpts(title="Pie-基本示例")) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) ) return render_template('show_charts.html', bar_options=bar.dump_options(), pie_options=pie.dump_options()) if __name__ == "__main__": app.run(debug = True)
html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ECharts</title> <!-- 引入 echarts.js 这里使用flask的url_for--> <script src="{{ url_for('static', filename='echarts.min.js') }}"></script> </head> <body> <!-- 为ECharts准备一个具备大小(宽高)的Dom --> <h1>柱形图</h1> <div id="bar" style="width: 600px;height:400px;"></div> <h1>饼图</h1> <div id="pie" style="width: 600px;height:400px;"></div> <script type="text/javascript"> // 基于准备好的dom,初始化echarts实例 var barChart = echarts.init(document.getElementById('bar')); var pieChart = echarts.init(document.getElementById('pie')); // 使用刚指定的配置项和数据显示图表。 barChart.setOption({{ bar_options | safe }}); pieChart.setOption({{ pie_options | safe }}); </script> </body> </html>
七、远程访问
远程服务器部署需指定 host='0.0.0.0' , 其他机器才能正常访问远程服务,即如下方式
app.run(host='0.0.0.0',port=8000)
指定host后远程服务可被其他任何机器访问。
八、问题实例
如果在终端运行出现如下问题
Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.其实就是flask未使用 WSGI 启动,所以使用wsgi启动就行了
from gevent import pywsgi if __name__ == '__main__': server = pywsgi.WSGIServer(('0.0.0.0', 8000), app) server.serve_forever()
-
此示例通过利用 Ignite UI 数据图表、数据网格、对话框窗口等,让用户深入了解世界上所有国家_地区的统计...
2021-06-09 15:21:48此示例通过利用 Ignite UI 数据图表、数据网格、对话框窗口等,让用户深入了解世界上所有国家/地区的统计数据。 每个图表都支持缩放和拖动缩放,以及多个系列、系列、类型和比例。 什么是点燃用户界面? 是一种... -
axure数据报表元件库_利用AxhubCharts元件库在Axure RP中快速创建可视化统计图-附件资源
2021-03-02 15:04:33axure数据报表元件库_利用AxhubCharts元件库在Axure RP中快速创建可视化统计图-附件资源 -
excel分析图表制作,如何轻松创建折线图、柱状图、饼图
2020-10-14 18:28:26在Excel中通过数据间的关系选择合适的图表,轻松创建折线图、柱状图、饼图使其表达的主题和内容更加简单清晰。 下面我们通过Smartbi大数据分析工具介绍excel分析图表制作方法,如何制作常用的图形折线图、柱状图、... -
通过遵循针对Tableau的MakeoverMonday挑战来提高我的数据可视化技能,从而使用Python和D3重新创建和改善...
2021-04-14 00:21:40我决定利用这一挑战,使用 (一个用于python的绘图库)和 (一个基于javascript的绘图库)来提高我的数据技能。 这意味着我不必一直为自己提出新的项目构想,也不需要寻找合适的数据集并清理它们。 每周的挑战使这... -
Excel 2010 VBA 入门 104 利用VBA生成图表
2021-07-12 08:33:06数据系列(Series)对象 添加图表的其他方法 1.通过添加Chart对象添加图表 2.通过Shapes集合的AddChart方法添加图表 示例 月份 产品A销售额 产品B销售额 1月 1247 628 2月 519 936 3月... -
利用Kibana图表化Elasticsearch中的数据
2017-11-28 18:18:23利用Kibana图表化Elasticsearch中的数据1. 背景Kibana 是一个开源分析和可视化平台,旨在可视化操作 Elasticsearch 。Kibana可以用来搜索,查看,和存储在 Elasticsearch 索引中的数据进行交互。可以轻松地进行高级... -
手把手教你如何创建和美化图表
2020-02-24 21:57:36一图胜千言。...今天我就教你如何用Excel创建图表,以及如何设置图表的样式。 【图表】位于【插入】选项卡下。在【图表】命令组中,我们可以看到常用的图表类型,如柱形图、折线图、饼图、散点图等... -
4个顶级开源JavaScript图表库
2020-12-01 04:31:23图表对于可视化数据和使网站具有吸引力非常重要。可视化演示使分析大块数据和传达信息变得更加容易。JavaScript图表库使你能够以易于理解和交互的方式可视化数据,并改善网站的设计。有四个顶级开源JavaScript图表库... -
tableau数据图表分析-进阶篇
2020-05-18 11:03:34tableau数据图表分析进阶篇 1、为条形图添加参考线。 在工作表的横轴单击鼠标右键,选择“添加参考线”,在弹出来的对话框中,可以选择:线、区间、分布、盒须图。这里我们选择“线”,在线选项表里面我们选择平均值... -
数据可视化图表类型_数据可视化中12种最常见的图表类型
2020-09-08 11:45:42数据可视化图表类型In the current era of large amounts of information in the form of numbers available everywhere, it is a difficult task to understand and get insights from these dense piles of data.... -
Excel数据分析与图表应用案例精粹_光盘
2013-08-31 11:00:245.4 利用数据透视表(图)统计日常费用 82 5.4.1 统计各部门费用支出金额 82 5.4.2 统计各类别费用支出金额 84 5.4.3 统计各部门各类别费用支出金额 85 5.4.4 比较各部门各类别1、2月的费用 87 第6章 企业... -
Excel数据分析高级技巧①——动态图表制作(offset,vlookup,控件…)
2019-05-21 22:50:46本文总结三种常用的动态图表制作方法:数据透视表+切片器,vlookup+match+数据验证,Offset 一、数据透视表+切片器 1、查看原始文件——一份不同城市的近几月的销量记录表 2、建立数据透视表——全选数据-插入-数据... -
TAcharts:使用NumPy将流行的TA工具和图表应用于烛台数据
2021-02-05 05:59:34该存储库提供了用于分析OHLCV数据的技术工具,以及几种TA图表功能。 这些功能针对速度进行了优化,并在可能的情况下通过内置熊猫方法利用numpy向量化。 方法 具有图表功能的指标 Bollinger(df=None, filename=None,... -
EXCEL如何利用数据有效性实现动态图表
2019-03-21 10:10:21要实现动态图表我们还需要添加辅助数据。 如图,添加两列数据即F和G列的。然后选中G2单元格(就是产品名称后面那个单元格),选择功能选项:数据-数据验证-数据验证。 弹出数据验证对话框。 在设置选项... -
使用HBuilder创建图表
2019-10-02 06:31:30// 基于准备好的dom,初始化echarts图表 var dom=document.getElementById('main'); var myChart = echarts.init(dom,'customed'); var option = { tooltip: { show: true }, legend: { data:... -
Obsidian学习笔记(一):插件Excalidraw创建图表
2022-04-01 07:22:19利用Obsidian的插件Excalidraw,绘制图表 -
利用 Flask 动态展示 Pyecharts 图表数据的几种方法
2019-09-03 18:33:42本文将介绍如何在 web 框架 Flask 中使用可视化工具 pyecharts, 看完本教程你将掌握几种动态展示可视化数据的方法,不会的话你来找我呀… Flask 模板渲染 1. 首先我们新建一个项目 flask-echarts 在编辑器中选择 New... -
【Excel2019(二十一):经典动态图实现原理】【动态图表实现原理+利用OFFSET函数与控件创建动态图表】
2020-03-28 23:36:17动态图表实现原理(理解图表中的数据系列,手工修改系列中的数值与坐标轴数据,利用IF创建简单的动态图表)利用OFFSET函数与控件创建动态图表(OFFSET函数概述,OFFSET函数的动态引用示例,动态图表:永远返回最后10... -
C#使用柱形图表分析显示商品走势
2021-03-16 00:57:30C#源码实现利用柱形图表分析商品走势信息,需要连接数据库读取商品走势数据,数据库文件放在Database文件夹中,对于搞C#的来说,什么情况都可能遇到,学会使用柱状图、圆饼较等图表来分析数据,也是必不可少的,通过... -
利用 Django 动态展示 Pyecharts 图表数据的几种方法
2020-11-12 11:27:02本文将介绍如何在 web 框架 Django 中使用可视化工具 Pyecharts, 看完本教程你将掌握几种动态展示可视化数据的方法! Django 模板渲染 1. 新建一个 Django 项目 命令行中输入以下命令 django-admin startproject... -
两年数据对比柱形图_呕心整理4大类12个图表类型,轻松搞定数据可视化
2020-11-16 18:11:42科技的进步让我们积累了越来越多的数据,如何更好的利用这些数据,将它们转化为有用的信息并驱动我们作出更好的决策,关键在于将它们可视化。但是,即便科技再进步,可视化工具再精益,也无法遏制劣质图表的泛滥。... -
-
Labview数据实时采集和存储.vi
2020-07-08 11:59:37Labview数据实时采集和存储.vi是个人在实际项目中成功的应用,可实现数据的实时采集和存储,同时利用XY图实现波形图表中可设定缓存历史数据长度功能,供大家参考借鉴。