数据可视化(Spotfire_Visualization)
文章平均质量分 66
预见未来to50
不忘初心,方得始终!
展开
-
Mathematica函数全量词频分析 (Word Frequency of Mathematica Functions)
Mathematica中内置函数数量达到了惊人的5000多种,那么,这些函数都是怎么分布的呢?试着通过函数名的词频统计简单分析一下。过程如下:1. 获取函数列表(官网,http://reference.wolfram.com/language/guide/AlphabeticalListing.html)2. 拆分函数名(参考:调试经验——使用VBA分割驼峰式字符串(Split Camel Cas...原创 2018-05-11 15:43:26 · 718 阅读 · 0 评论 -
高等数学Mathematica实验题——1.3-5.簧舌线轨迹线直角坐标的求解
首先,这道题目虽然花费我时间比较多,但感觉挺值,挺有成就感。题目:1.3 - 5. 过圆x^2+y^2-2y=0上一定点O(0,0)作任意直线,分别交直线y=2于A点,交圆于Q点,过Q,A分别作x,y轴的平行线交于P点,则P点的轨迹为簧舌线,求其轨迹线的直角坐标方程。解答:备注:1. 演算了两遍,用了6页草稿纸(是不是太菜了,哈哈。主要是第一遍出错了,把参数方程形式搞得很复杂,没法转化成直角坐标...原创 2018-05-08 02:00:47 · 1430 阅读 · 1 评论 -
使用Mathematica绘制星形线(Astroid)
“星形线是内摆线的一种。星形线(astroid)或称为四尖瓣线(tetracuspid),是一个有四个尖点的内摆线,也属于超椭圆的一种。直角坐标方程:x^2/3+y^2/3=a^2/3, 参数方程:x=a*(cost)^3,y=a*(sint)^3 (t为参数)”"内摆线,指的是一个动圆内切于一个定圆作无滑动的滚动,动圆圆周上一个定点的轨迹。它与摆线相当,但是它不是在线上做纯滚动的圆,而是在大圆内...原创 2018-05-08 03:11:43 · 7409 阅读 · 0 评论 -
使用Mathematica绘制椭圆(Ellipse)
"椭圆(Ellipse)是平面内到定点F1、F2的距离之和等于常数(大于|F1F2|)的动点P的轨迹,F1、F2称为椭圆的两个焦点。其数学表达式为:|PF1|+|PF2|=2a(2a>|F1F2|)。椭圆是圆锥曲线的一种,即圆锥与平面的截线。"备注:图中的大小两个圆及辅助线用于椭圆参数的几何解释。...原创 2018-05-08 03:17:21 · 7384 阅读 · 1 评论 -
使用Mathematica绘制笛卡尔叶形线图形(Folium of Descartes)
“著名科学家笛卡儿,根据他所研究的一簇花瓣和叶形曲线特征,列出了x^3+y^3-3axy=0的方程式,这就是现代数学中有名的“笛卡儿叶线”(或者叫“叶形线”),数学家还为它取了一个诗意的名字——茉莉花瓣曲线。”这个看似简单的图形在Mathematica却不是那么好画,试了半天没成功,参考了这篇文章才画出来:http://community.wolfram.com/groups/-/m/t/1044...原创 2018-05-08 03:23:37 · 5704 阅读 · 0 评论 -
Mathematica应用实例——站在金茂大厦楼顶最远能看多远(在地图上画出可视范围,GeoVisibleRegion)
碰到了一个非常有意思的Mathematica函数-GeoVisibleRegion,然后自己试用了一下,便有了这个应用实例。问题:站在金茂大厦楼顶最远能看多远,请在地图上画出可视范围解答:备注:根据百度地图上的测距结果,基本上验证了登高望远的可视距离的计算公式为:d=112*sqrt(h) (其中,h为建筑物的高度,单位千米。金茂大厦高421米,即0.421千米,代入上述公式,计算得:d=112*...原创 2018-05-08 18:15:59 · 1206 阅读 · 0 评论 -
高等数学Mathematica实验题——2.2 - 16. 欧拉常数的计算(Calculation of EulerGamma Constant)
题目:2.2 - 16. (1) 观察数列an = 1 + 1/2 + 1/3 + ... + 1/n - ln n, n = 1, 2, ... 是否为单调递减有下界的数列?(2) 若记C = Limit[an,n->∞],称C为欧拉常数,试求得欧拉常数的近似值,精确到小数点以后两位。...原创 2018-05-15 23:43:30 · 1618 阅读 · 0 评论 -
高等数学Mathematica实验题——2.2 - 17.根号2的连分式展开(Expansion of square 2)
题目:2.2 - 17. 设 Subscript[a, 1] = 1, Subscript[a, n]=1 + 1/(1 +Subscript[a, n-1] ), n = 2, 3, ..., (1)试计算该数列的前面若干项,并作出点列图,观察数列的特点;(2)结合观察的结果,利用分析证明Limit[Subscript[a, n],n->\[Infinity]] = Sqrt[2]. 这...原创 2018-05-16 21:26:28 · 1689 阅读 · 0 评论 -
高等数学Mathematica实验题——3.1 - 15. 逻辑斯谛曲线族人口增加极限模型(Logistic growth model)
高数的精进终于进入到第三章了,不容易啊。题目:3.1 - 15.逻辑斯谛曲线族y=A/(1+Be^-\[Lambda]x),-\[Infinity]<x<+\[Infinity],A,B,\[Lambda]>0,建立了人口增加极限的模型。(详细题干见以下Mathematica解答过程)...原创 2018-05-28 02:32:24 · 3047 阅读 · 2 评论 -
调试经验——Spotfire中使用Python脚本实现下拉菜单切换数据表(Switch datatable with Python script in Spotfire)
有位美国同事向我请教问题,如何下拉菜单切换Table visualization(表格视图)所引用的数据表。经过一番google, baidu, yahoo,以及stackoverflow等技术网站的搜索,以及在Spotfire中的不断调试,总算是实现了这个功能。不错!基本步骤:1. 创建Text Area,在其中创建Property Control(Control type为Drop-down ...原创 2018-05-23 14:39:31 · 2465 阅读 · 1 评论 -
高等数学Mathematica实验题——2.1 - 13. 复利计算 (Compound Interest calculation)
题目:2.1 - 13. 复利计算(题干详细描述见教材)(1)An=(1+r/m)^n(A0+mb/r)-mb/r,如果A0=1000, r=2%, m=12, b=50, 计算An的前100项的值,指出在第五年末账户余额,画出{{n,An}|n=1,2,...,100}的点阵图(2)对A0=5000, r=6%, m=12, b=-50,重做(1)(3)如果在一个存单上一次性存入5000元,以后...原创 2018-05-14 17:37:18 · 1216 阅读 · 0 评论 -
使用Matlab绘制圆锥的立体图(Cone's graph)
圆锥的立体几何定义:“以直角三角形的直角边所在直线为旋转轴,其余两边旋转360度而成的曲面所围成的几何体叫做圆锥。旋转轴叫做圆锥的轴。 垂直于轴的边旋转而成的曲面叫做圆锥的底面。不垂直于轴的边旋转而成的曲面叫做圆锥的侧面。无论旋转到什么位置,不垂直于轴的边都叫做圆锥的母线。”Wikipedia上的定义如下:“A cone is a three-dimensional geometric shape...原创 2018-04-28 18:02:58 · 25277 阅读 · 3 评论 -
高等数学Mathematica实验题——1.2-30.三角波函数的函数解析式求解及图形绘制 (Triangular wave function)
“对于函数y=f(x),如果存在一个不为零的常数T,使得当x取定义域内的每一个值时,f(x+T)=f(x)都成立,那么就把函数y=f(x)叫做周期函数,不为零的常数T叫做这个函数的周期。事实上,任何一个常数kT(k∈Z,且k≠0)都是它的周期。并且周期函数f(x)的周期T是与x无关的非零常数,且周期函数不一定有最小正周期。(如,狄利克雷函数不具有最小正周期)”“In mathematics, a ...原创 2018-05-06 17:35:30 · 9376 阅读 · 0 评论 -
高等数学Mathematica实验题——1.3-10.蝴蝶效应曲线的绘制(Butterfly Effect Curve)
问题:1.3-10. 试绘制蝴蝶效应曲线 (x = 2 a t - 4 t^3, y = -a t^2)解答:使用以下代码,可将上述过程“录制”为.gif动态图Export["ButterflyEffect.gif", Manipulate[ ParametricPlot[{x = 2 a t - 4 t^3, y = -a t^2}, {t, -5, 5}], {a, -80,...原创 2018-05-11 22:29:57 · 3003 阅读 · 0 评论 -
高等数学Mathematica实验题——绘制极坐标方程的曲线图形(e螺线、肾腰线、蝴蝶线(e Sprial, Kidney Curve, Butterfly Curve))
题目:1.3 - 11. 绘制以下极坐标方程所描述的曲线图形:(1) ρ = lnθ (e螺线)(2) ρ = 1 + 2 Sin (θ/2) (肾腰线)(3) ρ = e^Sinθ - 2 Cos4θ(蝴蝶线)解答:备注:“e螺线”是我自己对该曲线的命名,因为我觉得中间部分很像一个有点倾斜的小写字母e,而刚好其极坐标方程为ρ=lnθ,真的有意思!...原创 2018-05-11 23:06:33 · 3248 阅读 · 2 评论 -
使用Mathematica绘制太阳线(Sun Light Graph)
这个曲线的极坐标方程(ρ=csc(nθ))也来自教材,因其时不时形似太阳,所以给其取名“太阳线”。动态图更好玩:代码:Manipulate[ PolarPlot[Sec[n x], {x, -10, 10}, PlotLabel -> "\[Rho]=Sec(n\[Theta])(太阳线)"], {n, -10, 30}]...原创 2018-05-11 23:43:45 · 990 阅读 · 0 评论 -
高等数学Mathematica实验题——绘制函数图形(y=1/1+x^2, y=e^(-x)sinx等)
“在数学中,函数 f 的图形(或图象)指的是所有有序对(x, f(x))组成的集合。具体而言,如果x为实数,则函数图形在平面直角坐标系上呈现为一条曲线。如果函数自变量为两个实数组成的有序对(x, y),则图形就是空间上的点(x, y, f(x, y))组成的集合,呈现为曲面。”如果不借助计算机,手绘函数图形需经过三步曲:取点、描点、连线(注意画出特殊点(间断点、顶点、尖点、拐点等)。要准确画出函数...原创 2018-05-06 03:31:49 · 13080 阅读 · 0 评论 -
高等数学Mathematica实验题——几个典型函数图形的绘制(y=sin1/x, y=xsin1/x等)
y=sin1/x, y=xsin1/x这两个函数在极限部分经常被拿出来讨论,可谓函数中的明星。虽然之前已写了两三篇关于这两个函数的图形绘制的文章,今天作为实验题再发一篇吧。...原创 2018-05-06 04:03:00 · 11685 阅读 · 0 评论 -
高等数学Mathematica实验题——1.2-26.函数族图形的绘制
1.2-26题目:用Mathematica软件作出下列函数族的图形,在同一窗口中观察λ变化对图形的影响。(1)y=xe^(-λx); (2)y=1-e(^λx),其中λ>0为参数解答:原创 2018-05-06 11:50:33 · 665 阅读 · 0 评论 -
调试经验——Mathematica化简结果不够理想 (Limitation of Mathematica Simplification)
今天,发现了Mathematica的化简结果有点小问题,即化简结果不够精简。详细说明如图所示,按道理不应该出现这个低级错误的呀?原创 2018-05-06 14:34:31 · 4655 阅读 · 1 评论 -
高等数学Mathematica实验题——1.2-28.分段函数的复合函数的求解及图形绘制(Composition of Piecewise Function)
"分段函数,就是对于自变量x的不同的取值范围,有着不同的解析式的函数。它是一个函数,而不是几个函数;分段函数的定义域是各段函数定义域的并集,值域也是各段函数值域的并集。""In mathematics, a piecewise-defined function (also called a piecewise function or a hybrid function) is a function...原创 2018-05-06 15:50:29 · 3643 阅读 · 0 评论 -
高等数学Mathematica实验题——1.2-29.反函数的求解及图形绘制 (Inverse Function Generation)
“一般地,设函数y=f(x)(x∈A)的值域是C,若找得到一个函数g(y)在每一处g(y)都等于x,这样的函数x= g(y)(y∈C)叫做函数y=f(x)(x∈A)的反函数,记作y=f^(-1)(x) 。反函数y=f ^(-1)(x)的定义域、值域分别是函数y=f(x)的值域、定义域。最具有代表性的反函数就是对数函数与指数函数。一般地,如果x与y关于某种对应关系f(x)相对应,y=f(x),则y=...原创 2018-05-06 16:58:41 · 5850 阅读 · 0 评论 -
调试经验——Spotfire中使用Javascript脚本实现可折叠菜单风格的筛选器(Accordion widget in Spotfire)
Spotfire中自带的筛选器(filtering schema, filter group, filters)其实已经非常强大了(用户/开发人员基本上不用操心,Spotfire会自动生成所有字段/数据列对应的筛选器/prompt)。所以,从实用角度来讲,不用另外创建filter panel。自己定义filter panel时,可使用Javascript/JQuery来美化filter panel...原创 2018-05-23 15:02:38 · 1494 阅读 · 1 评论 -
Spotfire调试经验——百分比的动态计算(Dynamic percentage calculation in Spotfire visualization)
使用百分比展现数据的好处就是可以进行数据的normalization(标准化),进而便于对相关指标进行比较。那么,应该如何动态计算百分比呢?其实这个问题应该是初学Spotfire时就应该掌握的,奈何当时Spotfire是边学边干(美称learning by doing,哈哈),没有接受过良好而系统的培训。长期以来,计算百分比我都是用插入计算列的方法来实现的。这种方法虽然也能满足业务需求,但现在看来...原创 2018-05-24 13:39:49 · 914 阅读 · 0 评论 -
Spotfire调试经验——环比的动态计算(Dynamic moving data calculation in Spotfire visualization)
已知各年度销售额的直方图如下所示:问题:如何展现出销售额在各年度间的变化?解决方案:单击图标左侧Y轴销售额,编辑公式为“- Sum([Sales Total]) Over (Previous([Axis.X]))”,即可实现用户所选择的各年度环比动态计算。 -----------------------------------------------------------------------...原创 2018-05-24 13:59:26 · 607 阅读 · 0 评论 -
他山之石——使用VBA写入txt文件
这一节基本没用,除了最后一个例子:记录文件的打开和关闭时间。'Open 文件名 for 打开方式 as 文件编号 '打开方式: 'Input :只能读,不能写 'Append:允许读也允许写,如果存在文件就追加记录,如果没有就新建文件 'Output:可以读,也可以写。但总会把原来的同名文件删除,再新建一个 '读取txt文件内容方法 '...原创 2018-06-28 01:17:29 · 20076 阅读 · 1 评论 -
调试经验——Spotfire中标记包含了特定字符串的记录(Tagging rows containing a specific string)
需求:在现有的报表中,用户新发现有一部分数据需要被“排除”掉,即,在生成统计分析视图时忽略这些数据。但同时,用户希望保留这些数据的查询。解决方法:增加一个计算列,用于标记这个不需要的列。具体的表达式为:If((Find("ENG-",Upper([QUESTION]))>=1) OR (Find("ENG)",Upper([QUESTION]))>=1) OR (Find("ENG "...原创 2018-07-11 16:34:56 · 632 阅读 · 0 评论 -
调试经验——Spotfire中使用计算列完成较复杂功能的必要性(Meeting complex requirement by inserting calculated column in SF)
需求:从数据库中提取出来的数据,往往是比较“原始”的数据。用户通常要求一些统计指标能在国家、中心、试验等不同维度下进行比较,称为数据的归一化(data normalization)。虽然可在Spotfire视图中使用表达式,但是总会遇到一些莫名其妙的报错。没办法,咱还是老老实实用插入计算列的方法来解决吧。解决方法:1. 一些百分比类的指标,可插入3个计算列:分子、分母及比值(分子/分母)。这样做的...原创 2018-07-11 16:52:37 · 902 阅读 · 0 评论 -
调试经验——开启Spotifre web客户端中的编辑功能 (Enable Edit button in Spotfire web client)
问题:有位来自日本的用户发邮件,请求我们在Spotfire报表(趋势分析报告) 网页上添加一个“Edit”按钮。说是以前是有的,现在的版本中找不到了。她需要对Spotifre的报表做一些优化,再报告给相关试验的CRA们。刚看到这封邮件,我有点懵。因为我不记得配置过这个功能。经过几次的邮件澄清,才找到问题所在。 解决方法:在Spotifre analysis文件的文档属性中,有一...原创 2018-07-23 12:13:26 · 567 阅读 · 0 评论 -
调试经验——Spotfire复杂报表的维护:排除部分数据
问题:客户要求Spotfire分析页面中不再考虑某些数据,但数据集中仍然要保留,以便用户查看。经验教训:这个要求看似简单,但是操作起来不容易。需要新增很多计算列,修改所有view,添加data limiting,花费了数小时。真是吃一堑,长一智,下次的需求评估要更小心一点了。...原创 2018-07-13 21:35:20 · 571 阅读 · 2 评论 -
Spotfire报表维护经验——新增计算列而不修改基本数据列
客户要求将一个view改回原来的样子(即,不适用与新需求)。由于上次的修改采用了新增计算列的方法,所以,只需要将视图中的统计指标改回原来的列即可,修改起来挺方便的。试想,如果未采用新增计算列的方法,而是通过Information Link修改了基本数据,那这次改动就没这么容易了。可见,计算列功能还是具有很大的灵活性的。 -------------------------------...原创 2018-08-10 11:38:06 · 853 阅读 · 0 评论 -
Spotfire使用经验——使用文档属性(Document Property)实现数据集范围的动态限定
需求描述:由于业务系统将被升级,现有的Spotfire报表的数据呈现将会收到影响。因此,用户希望能够在Spotfire中选择查看不同时间范围内的数据,即,业务系统升级前的数据和升级后的数据。解决方法:用户提出的方法是,创建两份Spotfire报表。我建议用户最好不要这样做,因为以后的维护成本将会翻倍。目前我提出的解决方案是:创建一个cutoffDate的文档属性(Document ...原创 2018-10-16 20:00:10 · 2218 阅读 · 0 评论 -
调试经验——Spotfire发布技巧(使用copy而不是move)
问题描述:Spotfire生产报表更新,要发布新的版本。采用以下方法发布,发现生产链接迟迟打不开(数据刷新不成功):1. 将生产服务器上的分析文件(analysis file)移动到存档文件夹2. 将新文件另存为(save as)库文件(library item)到原来的生产文件的位置 首先,怀疑是不是数据刷新未成功。于是尝试在Scheduling & Routing页...原创 2018-11-06 12:36:57 · 768 阅读 · 1 评论 -
Spotfire调试经验——在Spotfire Cross Table(类似Excel Pivot Table)中实现去重百分比计算(% of total)
Excel透视表有个局限性,不能实现去重统计。即,只提供了count函数而没有提供uniqueCount函数。Spotfire的Cross Table中可使用uniqueCount来统计某一列中各个不同值所出现的行数,即去重统计。问题是,这个去重后的百分比怎么计算?自己摸索了半天,总算是在参考了一篇帖子后找到了解决方法:UniqueCount([列名]) THEN [Valu...原创 2019-06-07 00:30:34 · 2119 阅读 · 0 评论 -
调试经验——使用VBA下载网络资源
第一次使用VBA从网上下载了一张图片,挺有意思!哈哈。代码:#If Win64 Then Private Declare PtrSafe Sub sleepp Lib "kernel32.dll" Alias "Sleep" (ByVal dwMilliseconds As LongLong) Private Declare PtrSafe Function DeleteUrlCa...原创 2018-06-27 23:07:57 · 819 阅读 · 1 评论 -
调试经验——使用Mathematica根据三角形的边长绘制三角形(Draw a triangle given the lengths of the sides)
今晚本来想在女儿面前炫耀以下十年前自己用Java写的一个三角形判定小程序(https://blog.csdn.net/hpdlzu80100/article/details/2257671),让女儿随口说出三个数字,由程序判定以这三个数字为边长能否构成一个三角形。女儿报出的数字为:18,28,38,程序判定为可以构成三角形。然后我就很轻松的对女儿说,“好,看看爸爸把这个三角形给你画出来啊”。想着用...原创 2018-06-02 01:02:32 · 1892 阅读 · 0 评论 -
Spotfire调试经验——环比增长率的动态计算(Dynamic moving data percentage calculation in Spotfire visualization)
各年度销售额的直方图如下所示:问题:如何展现出销售额在各时间段内(年、季度、月、星期、天、小时、分、秒)间的变化?解决方案:单击图标左侧Y轴销售额,编辑公式为“(Sum([Sales Total]) - Sum([Sales Total]) OVER(previous([Axis.X]))) / Sum([Sales Total]) OVER (previous([Axis.X]))”,即可实现用...原创 2018-05-24 14:16:08 · 606 阅读 · 0 评论 -
Spotfire调试经验——累计值的动态计算(Dynamic accumulated value calculation in Spotfire visualization)
各年度销售额的直方图如下所示:问题:如何展现出各时间段内(年、季度、月、星期、天、小时、分、秒)的累计销售额?解决方案:单击图标左侧Y轴销售额,编辑公式为“Sum([Sales Total]) OVER (AllPrevious([Axis.X]))”,即可实现该要求。按季度计算的累计销售额:按年度汇总的累计销售额:...原创 2018-05-24 14:28:05 · 622 阅读 · 0 评论 -
Spotfire调试经验——移动平均值的动态计算(Dynamic calculation of moving average in Spotfire visualization)
各季度销售额的折线图如下所示:问题:如何展现出过去时间段内(年、季度、月、星期、天、小时、分、秒)的移动平均值?解决方案:单击图标左侧Y轴销售额,编辑公式为“Sum([Sales Total]) OVER (LastPeriods(3,[Axis.X]))/ 3”,即可实现该要求。其中的3表示过去3期(包括当期,用户可自己指定)-----------------------------------...原创 2018-05-24 15:03:33 · 784 阅读 · 0 评论 -
Spotfire调试经验——同比的动态计算(Dynamic parallel period compare in Spotfire visualization)
各季度销售额的直方图如下所示:问题:如何展现出销售额的同比变化(如,与上一年度同一季度的进行比较)?解决方案:单击图标左侧Y轴销售额,编辑公式为“Sum([Sales Total]) - Sum([Sales Total])OVER (ParallelPeriod([Axis.X]))”,即可实现该需求。以下内容节选自官方文档:The OVER functions areused to deter...原创 2018-05-24 16:28:53 · 591 阅读 · 0 评论