返回公众号历史文章目录

文章 / 公众号历史文章

《Excel+Python科研绘图》我的第一本纸质书问世啦,第二作者的身份和童大谦老师合著

很荣幸受童大谦老师邀请,完成了自己擅长的一小部分的内容:《用C 绘制Excel 图表》。接入到童大谦老师新书《Excel+Python科研绘图》中,成为一名第二作者。 样书收到后,通读了一遍,内容干货不少。下面简单分享一些自己的感受和向需要的读者群体作下推荐。 自己开发图表插件EasyShu有5年多

很荣幸受童大谦老师邀请,完成了自己擅长的一小部分的内容:《用C#绘制Excel 图表》。接入到童大谦老师新书《Excel+Python科研绘图》中,成为一名第二作者。

样书收到后,通读了一遍,内容干货不少。下面简单分享一些自己的感受和向需要的读者群体作下推荐。

自己开发图表插件EasyShu有5年多时间了,接触到了很多图表工具和底层的图表库。自认为在Excel图表上也算是第一梯队,没什么知识盲点了。直到遇到童大谦的使用Excel原生图表功能,极致般完成了许多高难度,普通人乃至问AI超级大脑,也觉得很不可能的实现如完成Excel版本的渐变色小提琴图、热力图等,不得不惊叹童老师的图表造诣水平。

就如玩Excel函数的群体里,喜欢极致地使用函数完成一切复杂的需求,虽然有时用VBA编程完成的话,会简单很多。Excel图表也一样,本书定位的是科研图表,科研图表也可以使用python/R的第三方包轻松地制作完成此类图表,比苦苦使用Excel的原生图表实现方便许多。

所以,笔者要很诚实地提醒到各位,如果您是对Excel情有独钟,喜欢用Excel完成一切,包括图表。这本书就很适合您这样的极客发烧用户需求。

童老师在书籍大量篇幅展示了Excel原生图表+图形Shape对象结合完成复杂图表绘制过程,使用非常精妙的坐标转换技术,将原生图表的坐标范围和图形Shape对象的坐标进行转换,使它们能够融合在一起。

除了绘制科研图表,本书开头部分,童老师讲解Excel图表对象的用法,也是很详细丰富的学习资料,比单纯录制宏得到的结果要完整,任何OFFICE代码驱动自动化操作,都是建立在对其对象模型的熟悉后才有游刃有余的,所以有图表相关自动化操作的,本书图表对象的知识也是非常有用的。

当然,对代码恐惧症的群体,也没关系,童老师还代码结构化封装成插件Excel++形式了,可以界面图形化调用一键出图。

公众号文章插图

除了书籍内容,还有插件赠送,还有视频教程配套,最后还有新特种IMA知识库准备和群答疑,所有这些只需花一本书的价格就能全获取,很超值。

最后,坦白下笔者参与的部分,400页的图书,我只参与了最后的20页的部分。

但内容在精不在多,笔者的《用C#绘制Excel 图表》,自认为也是超级浓缩干货,里面有笔者开发EasyShu图表插件中的Excel原生图表实现部分的核心思路和代码。

书中揭晓了EasyShu是如何通过图形和数据分离的技术,将Excel图表模板使用界面方式快速生成并细节调整优化好,使用C# 代码方式来驱动,将图表引用的数据进行更新替换,完成了图表适配新数据源的要求。

除了普通COM组件方式的调用Excel图表对象接口,也分享了OpenXML技术的方式来修改更新图表,重点演示了EPPLUS图表库的实现,这些也是AI通用工具难以给出的思路作法。

短短20页内容,通过5个示例带出很多核心关键的知识,如果只对这部分感兴趣而购买本书,笔者觉得不过分,仍然是超值。

重点提醒:本书内容高能,非普通用户值得尝试,最合适的购买群体是:Excel极客用户,Excel图表极客爱好者,重度OFFICE解决方案二次开发者。

其他群体谨慎购买,更适合以实用为上使用EasyShu图表插件完成自己的图表制作需求。

以下6折购书通道(400页图书109元定价偏低,6折实付价只需65.4元)

公众号文章插图

以下部分截图效果

公众号文章插图

公众号文章插图

公众号文章插图

公众号文章插图

公众号文章插图

公众号文章插图

公众号文章插图

编辑推荐

适读人群 :大学生、研究生、科研工作者,有科研绘图需求的所有人。

Chatgpt和DeepSeek无法告诉你的Excel绘图秘密……

Excel(不用懂编程)、VBA、Python和C#等多种绘图方式

近300图表示例

开发数十种Excel没有的科研图表类型

免费提供3套随书视频教程

全部源码和数据下载

内容简介

本书主要介绍和发掘Excel软件自身绘制科研图表的能力。

相对于其他类似软件,Excel的缺点是大部分科研图表类型缺失,完全没有;优点是它有的基本图表类型被它做到了极致,可以轻松实现很多其他软件不太容易实现的效果。

本书基于图形学原理,利用Excel自有图形引擎,开发出了大量科研图表,如二元直方图、一元和二元核密度估计曲线图、抖动散点图、规则散点图、多种样式的热力图、箱形图、散点柱状图、散点箱形图、误差柱状图、小提琴图、云雨图、配对图等等。MATLAB和Python有的科研图表类型Excel现在基本上都有了。由于Excel最近集成了Python,本书下篇也介绍了使用Python的Matplotlib,Seaborn和Pandas等包绘制科研图表。

作者简介

童大谦曾在高校任教。2001年至今,出版MATLAB, Python, .NET和SPSS类图书20余本,部分图书被数十所大学用于教学。近年著有《代替VBA! 用Python轻松实现Excel编程》和《MATLAB科技绘图与学术图表绘制从理论到实践》等图书。

李伟坚资深数据全栈专家,拥有15年以上的数据相关工作经验。Excel催化剂公众号主理人,EasyShu图表插件、Excel催化剂插件、FreeScript插件等主创。

目录

第1 章 概述 / 1
1.1 科研绘图概述 2
1.1.1 科研绘图的相关概念 2
1.1.2 科研绘图的常见要求 2
1.1.3 常见的科研绘图软件 3
1.2 用Excel 图形引擎绘图 3
1.2.1 用Excel 图形引擎绘图的优点和缺点 3
1.2.2 用Excel GUI 绘图 4
1.2.3 以编程方式创建和编辑科研图表 4
1.2.4 用Excel 创建新图表 4
1.3 用Matplotlib 图形引擎绘图 5
1.3.1 用Matplotlib 图形引擎绘图的优点和缺点 5
1.3.2 在Excel 中用Matplotlib图形引擎绘图 5
1.4 本书使用说明 6
1.4.1 代码使用说明 6
1.4.2 学习资源使用说明 6
1.4.3 软件版本使用说明 6

第2章 语言和数据基础 / 7
2.1 在Python 中用Excel图形引擎绘图 8
2.1.1 Python xlwings 的安装 8
2.1.2 Python xlwings 的两种编程方式 8
2.1.3 使用Python xlwings 的一般过程 9

2.2 数据分类 10
2.2.1 标量、向量和矩阵 10
2.2.2 数值型数据 11
2.2.3 分类型数据 12
2.2.4 时间系列型数据 12

2.3 数据导入和导出 12

2.4 数据整理 13
2.4.1 列数据的获取 13
2.4.2 列数据的筛选 15

2.5 数据预处理 16
2.5.1 重复值的处理 16
2.5.2 缺失值的处理 17
2.5.3 异常值的处理 18

第3 章 图表基础 / 21
3.1 用Excel 创建图表 22
3.2 用Python xlwings 创建图表 22
3.2.1 用ChartObjects 对象创建图表 22
3.2.2 用Shapes 对象创建图表 24
3.2.3 通过逐个添加系列创建图表 26
3.2.4 用API 方式创建图表工作表 27
3.2.5 绑定数据 28

3.3 图表类型与常用属性 29
3.3.1 设置图表类型 29
3.3.2 设置和修改图表属性 34

3.4 坐标系 36
3.4.1 Axes 对象和Axis 对象 36
3.4.2 坐标轴标题 38
3.4.3 数值轴的取值范围 40
3.4.4 坐标轴反向 41
3.4.5 坐标轴交点位置 42
3.4.6 刻度线 43
3.4.7 刻度线间隔 44
3.4.8 刻度标签 46
3.4.9 刻度标签间隔 47
3.4.10 刻度标签的输出格式 49
3.4.11 网格线 50
3.4.12 外框 51
3.4.13 双轴图 52
3.4.14 对数坐标图 54

3.5 图表元素 55
3.5.1 设置图表元素 55
3.5.2 图表标题 57
3.5.3 数据标签 58
3.5.4 绘图区 59
3.5.5 图表区 61
3.5.6 图例 62

第4 章 美化Excel 图表 / 66
4.1 获取图表中的基本图形元素 67
4.1.1 获取图表中的系列 67
4.1.2 获取系列中的单个点 68
4.2 修改基本图形元素的属性 70
4.2.1 修改点的属性 70
4.2.2 修改线的属性 73
4.2.3 修改面的属性 75
4.2.4 修改文本的属性 83
4.3 着色与配色 84
4.3.1 颜色的表示 84
4.3.2 配色理论 88
4.3.3 配色工具和资源 92
4.3.4 给一组对象着色 92
4.3.5 使用颜色查找表 93

4.4 更多渲染 100
4.4.1 透明度 100
4.4.2 纹理映射 101
4.4.3 光照和材质 101
4.4.4 特效:阴影 102
4.4.5 特效:发光 103
4.4.6 特效:边缘柔化 105
4.4.7 特效:三维效果 106

4.5 样式和布局 107
4.5.1 内置图表样式 107
4.5.2 自定义图表样式 110
4.5.3 布局章法:留白 112
4.5.4 布局章法:主次 112
4.5.5 布局章法:疏密 112
4.5.6 布局章法:取舍 112

4.6 高质量图表输出 112
4.6.1 设置图表大小 112
4.6.2 设置字体 113
4.6.3 将图表保存为图片 114
4.6.4 输出矢量格式 114

第5 章 创建新图表 / 116
5.1 在绘图区自定义图表的坐标 117
5.1.1 图表区与绘图区的位置和大小 117
5.1.2 图表区与绘图区的坐标系 120
5.1.3 创建空坐标系 121
5.1.4 在绘图区添加图形元素 122
5.1.5 坐标转换 125

5.2 在图表中绘制基本图形元素 127
5.2.1 绘制点 127
5.2.2 绘制直线 130
5.2.3 绘制矩形、圆角矩形、椭圆和圆 132
5.2.4 绘制多义线与多边形 135
5.2.5 绘制贝塞尔曲线 142
5.2.6 绘制标签 143
5.2.7 绘制文本框 144
5.2.8 添加标注 145
5.2.9 绘制自选图形 148
5.2.10 绘制艺术字 149

5.3 用基本图形元素搭建新图表 151
5.3.1 自定义堆叠柱状图 151
5.3.2 自定义冲击图 154
5.3.3 自定义散点柱状图 155
5.3.4 自定义三角形柱状图 158
5.3.5 自定义倒三角形柱状图 160

5.4 修改已有图表创建新图表 161

5.5 组合已有图表创建新图表 164

5.6 图形的几何变换 167
5.6.1 几何变换的基本原理 167
5.6.2 平移变换 168
5.6.3 旋转变换 169
5.6.4 缩放变换 170
5.6.5 翻转变换 171

5.7 图片操作 173
5.7.1 在图表中添加图片 173
5.7.2 图片的几何变换 174
5.7.3 在图表中添加图片示例 175

5.8 在绘图区自定义图表时可能遇到的几个问题 176
5.8.1 图表覆盖问题 176
5.8.2 图表变形问题 177
5.8.3 提高绘图的速度 178

第6 章 分类型图表 / 179
6.1 点图 180
6.1.1 简单点图 180
6.1.2 复合点图 181
6.1.3 简单滑珠图 182
6.1.4 复合滑珠图 183
6.1.5 分区滑珠图 185
6.1.6 哑铃图 186
6.1.7 火柴杆图 189
6.1.8 棒棒糖图 191

6.2 线形图 194
6.2.1 简单线形图 194
6.2.2 复合线形图 195
6.2.3 平滑线形图 197
6.2.4 纵向线形图 198
6.2.5 线形图+渐变色背景 199
6.2.6 带形图 200

6.3 柱状图 201
6.3.1 简单柱状图 201
6.3.2 不同色简单柱状图 202
6.3.3 渐变色填充简单柱状图 204
6.3.4 图案填充简单柱状图 205
6.3.5 图片填充简单柱状图 206
6.3.6 复合柱状图 207
6.3.7 堆叠柱状图 208
6.3.8 百分比堆叠柱状图 209
6.3.9 重叠柱状图 210
6.3.10 水平向渐变色填充复合柱状图 211
6.3.11 三维柱状图 212
6.3.12 三维圆锥柱状图 214
6.3.13 三维圆柱柱状图 215
6.3.14 三维棱锥柱状图 217

6.4 条形图 218
6.4.1 二维条形图与三维条形图 218
6.4.2 堆叠条形图 221
6.4.3 百分比堆叠条形图 222

6.5 面积图 223
6.5.1 简单面积图 223
6.5.2 复合面积图 224
6.5.3 堆叠面积图 225
6.5.4 百分比堆叠面积图 226
6.5.5 渐变色堆叠面积图 227
6.5.6 三维面积图 228

6.6 饼图 230
6.6.1 二维饼图 230
6.6.2 饼图扇区明细图 232
6.6.3 三维饼图 234

6.7 环状图 235

第7 章 数值型图表 / 238
7.1 直方图 239
7.1.1 一元直方图的绘制方法 239
7.1.2 绘制一元直方图 241
7.1.3 二元直方图的绘制方法 244
7.1.4 绘制二元直方图 246
7.1.5 分箱散点图 248

7.2 核密度估计图 256
7.2.1 一元核密度估计曲线图 256
7.2.2 单色填充核密度估计曲线图 259
7.2.3 渐变色填充核密度估计曲线图 260
7.2.4 多色渐变色填充核密度估计曲线图 262
7.2.5 复合一元核密度估计曲线图 263
7.2.6 单色填充山脊图 266
7.2.7 渐变色填充山脊图 269
7.2.8 二元核密度估计曲面图 271
7.2.9 二元核密度估计等值线图 274

7.3 散点图 275
7.3.1 二维散点图 275
7.3.2 抖动散点图 277
7.3.3 规则散点图 281

7.4 气泡图 287
7.4.1 二维气泡图 287
7.4.2 三维气泡图 289

7.5 热力图 290
7.5.1 普通热力图 290
7.5.2 圆圈热力图 297
7.5.3 方块热力图 303
7.5.4 三角形方块热力图 304

7.6 曲面图 306
7.6.1 曲面+三维填充等值线图 307
7.6.2 曲面模型 308
7.6.3 曲面的颜色、透明度和光照 309
7.6.4 等值线图和填充等值线图 310

第8 章 统计图表 / 313
8.1 数据探查 314
8.1.1 描述性统计 314
8.1.2 频数分析和直方图 316
8.1.3 核密度估计 317

8.2 箱形图 319
8.2.1 箱形图简介 319
8.2.2 简单箱形图 320
8.2.3 多色简单箱形图 325
8.2.4 水平多色简单箱形图 326
8.2.5 单色渐变简单箱形图 329
8.2.6 多色渐变简单箱形图 331
8.2.7 简单箱形图叠加均值连线 332
8.2.8 复合箱形图 334

8.3 小提琴图 334
8.3.1 小提琴图样式1 335
8.3.2 小提琴图样式2 338

8.4 组合图 340
8.4.1 云雨图 340
8.4.2 误差柱状图 346
8.4.3 散点柱状图 349
8.4.4 散点箱形图 351

8.5 与概率分布相关的图表 354
8.5.1 QQ 图 355
8.5.2 PP 图 357
8.6 均值比较 360
8.6.1 配对图 360
8.6.2 箱形图叠加配对图 363
8.6.3 误差柱状图叠加配对图 365
8.6.4 误差柱状图标注检验显著性 367

第9 章 用VBA 和C#绘制Excel 图表 / 370
9.1 用VBA 绘制Excel 图表 371
9.1.1 用VBA 创建Excel图表 371
9.1.2 用VBA 美化Excel图表 371
9.1.3 用VBA 创建新图表 372

9.2 用C#绘制Excel 图表 374
9.2.1 用C#绘制Excel 和WPS 表格图表 374
9.2.2 用C#调用COM 接口实现Excel 图表的自动化 375
9.2.3 用EPPlus 库绘制Excel图表 383

收起全部↑

前言/序言

前言

本书的出发点

“一图胜千言”,数据可视化是科学计算和数据分析的一部分。作为微软比较成功的产品之一,Excel 不仅提供了强大的数据处理能力,还提供了强大的图形引擎。用Excel 可以实现各种常见的科研图表的绘制。

本书结合若干示例,用Excel 和Python xlwings 对照的方式,试图手把手地教会读者如何用Excel 绘图。通过阅读本书,读者不仅可以学会用Excel 绘图,还可以学会各种渲染方法,对已有图表进行美化,以及用不同的方式创建Excel 中没有的科研图表。

本书还同步提供了VBA 代码。因此,本书介绍了如何使用Excel(不用懂编程)、VBA 和Python 这3 种方式绘制科研图表。

相信通过阅读本书,读者不仅能获得“鱼”,还能掌握“渔”的方法和技巧,真正学到知识。

本书的内容

Excel 经常被用于科研绘图。其缺点是缺少多种类型的科研图表,需要用户自行创建;优点是在数十种基本图表类型上做到了极致,对于用Python 和MATLAB 等工具难以实现的效果,用Excel 可以轻松实现。

本书第2~9 章主要介绍基于Excel 图形引擎绘图的方法;第10 章主要介绍基于Matplotlib 图形引擎绘图的方法。综上所示,本书对Excel 的科研绘图功能进行了系统的介绍。

其中,第2 章和第3 章介绍用Excel 和Python xlwings 绘图所需的语言、数据和图表的基础知识。

第4 章介绍用Excel 和Python xlwings 美化Excel 图表的方法。因为默认绘制的图表的样式偏向商业图表和工作型图表,所以在绘图时需要改变图表样式和重新配色。

在Excel 中,可以对绘制的图表进行整体渲染,也可以通过对象索引获取图表局部的点、线、面或文本等后修改它们的属性。

第5 章介绍创建新图表的方法。在Excel 中,可以用点、线、面和文本等创建新图表,也可以在已有图表的基础上修改或替换部分图形元素创建新图表,还可以通过组合多种已有图表来创建新图表。本章给出了若干示例。

第6 章、第7 章介绍绘制分类型图表和数值型图表的方法。分类型图表的坐标轴中至少有一个是分类轴,常见的分类型图表包括点图、线形图、柱状图、条形图、面积图、饼图和环状图等。数值型图表的所有坐标轴都是数值轴,常见的数值型图表包括直方图、核密度估计图、散点图、气泡图、热力图和曲面图等。

第8 章介绍绘制统计图表的方法。统计图表在学术期刊上经常可以看到。本章不仅介绍了绘制统计图表的方法,还梳理了相关的统计与分析知识。本书中的大部分数值型图表和几乎所有统计图表都是笔者自行创建的。

第9 章介绍用VBA 和C#绘制Excel 图表的方法。本质上,Python xlwings 和VBA调用的Excel 对象模型是同一个,它们甚至使用相同的语法进行编程。

第10 章介绍基于Python In Excel 功能在Excel 中用Matplotlib 图形引擎绘制Excel图表的方法。现在Python 也成了Excel 的内置语言。

本书的特点

 Excel 高级绘图

本书在Excel 中引入了MATLAB 和Python 中常见的颜色查找表。通过反复测试,整理出了用Excel 图形引擎、基于计算机图形学的一整套绘图方法。掌握此法,可以极大地扩展Excel 的高级绘图功能。

 在Python 中用Excel 图形引擎绘图

本书详细介绍了基于Python xlwings 用Excel 图形引擎绘图的方法,也介绍了用VBA 和C#绘图的方法。

 对照学习

本书用Excel 和Python xlwings 对照的方式,详细介绍了Excel 的绘图功能,并开发了与绘图相关的多种图表,极大地扩展了Excel 的科研绘图功能。

 内容真诚

本书不仅“授之以鱼”,还“授之以渔”。不仅向读者展示了大量的成品图表和代码,还结合示例向读者介绍了美化Excel 图表和创建新图表的方法。

 内容新颖

本书有很多创造性的内容,即使是熟悉Excel 绘图功能的人读起来也会惊喜连连。本书还介绍了基于Python In Excel 功能在Excel 中用Matplotlib 图形引擎绘制Excel 图表的方法。

 内容专业

编写本书之前,笔者参考了数千个科研图表,系统分析了科研图表的特点,并在写作中以此为要求。此外,笔者也有较大型图形系统开发的经验。

 内容精练

本书原稿有700 多页,为了使内容更精练,书中省略了大量重复的代码,包括几乎所有VBA 代码。

本书的适用对象

本书适合大学生、研究生、科研人员、数据分析人员、工程师、程序员,以及所有对科研绘图感兴趣的人使用。