Excel下三角图解的绘制
Excel下三角图解的绘制
1. 问题由来
Microsoft Excel已经提供了大量的图表类型,但仍然有一些图表类型没有提供,例如在地学中需要经常应用的三角图,就没有提供,一般来说,这类问题有几种解决方式,或者找一个可以绘制三角图解的软件,比如Grapher 3.x以上版本;或者使用CorelDraw,Visio这样的软件通过绘图方式不精确的实现;或者在Excel中通过某种办法来“迂回”实现。
最后一种办法是笔者比较喜欢的方法,也是本文将要介绍的方法。
2. 解决思路
首先,需要知道三角图解是如何绘制的。三角图有X、Y、Z三个轴,和其他直角坐标系图解不同,X、Y、Z三个轴的值范围都是0~100,且满足X+Y+Z=100,所以,X、Y、Z一般代表其百分含量。
所以,我们的思路是通过坐标变换来将X、Y、Z三个变量变换到二维坐标系统的散点图(Scatter Chart),然后再绘制到图表中,而三角图的坐标轴以及刻度线都可以通过添加数据绘制,然后隐藏掉Excel散点图的坐标轴,一个三角图解就绘制完成了。
假设我们将绘制的三角图三个轴都设置为200的长度,散点图的圆点坐标设置在三角图的正下方(见上图),那么对于三角图中的任意点,其在散点图中的坐标是:
ScatterX = (100 - 200 * Y / (Y + Z)) * (100 - X) / 100
ScatterY = X * 1.732051[①]
公式的推导是很简单的三角运算,应用此公式,我们就可以开始绘制三角图解了。
3. 绘制三角形和坐标点
首先在Excel中添加一个散点图,不添加数据,此时,这个图只是一个空白的方框。
需要说明的是,三角图解的坐标轴和数据点都是通过Excel图表的数据系列绘制的,在Excel中,一个图表可以最多添加256个数据系列,每个系列的格式(线性、数据标志都可以不同),所以要绘制此图解,我们就可以使用Excel的数据系列,逐个绘制所有内容。
3.1. 绘制三角形和坐标刻度
三角形和刻度的绘制需要知道所有三角坐标的坐标值,然后通过上文所述的公式变换得到需要的坐标,然后添加到散点图中。然后设置三角图的线性、符号等等。
3.2. 绘制坐标点
绘制好以上三角形后,就可以将坐标点通过上文公式变换为直角坐标系下的坐标,通过添加数据系列直接添加到图中,这样,坐标点也就绘制到三角图中了。
完成后,可以修改坐标点的格式、线性等内容。
3.3. 完成绘制
最后修改图表格式,去掉坐标轴,一个三角图解即绘制完成,你可以将此图留做模版,每次使用时只需要修改坐标点即可。
4. 结论
以上方法,思路很直接,也很简单,需要的工作量也不是很大,完全得益于Excel良好的设计和扩充性。而通过VBA编写一个加载宏,我们还可以给Excel增加一个功能,和别人分享你的成果。
附:
笔者编写的GCDPlot(免费、非开源)也有三角图绘制功能,文中三角图为GCDPlot绘制,需要者请参考:
介绍:http://www.cnblogs.com/maweifeng/archive/2004/12/26/82103.html