肆拾捌- 当我们在用 Tableau Dashboard Extension 时,我们到底看到什么? 绝望之旅 (三)

本文详细介绍了如何在Tableau中设置Debug进行扩展调试,包括在Tableau快捷方式中添加配置以启动Debuger,以及如何在Chrome浏览器中访问调试页面。文章还提供了在不同版本浏览器中调试的注意事项,同时深入讲解了如何利用Tableau扩展读取仪表板和工作表数据、应用过滤器和参数。

1. 我们必须设置 Debug

在调试 Tableau 扩展时,使用的是 Chrome 浏览器,详情可参考官网设置:
Debug Extensions in Tableau Desktop
其实就只需要一部,你需要在你的 Tableau 快捷方式里面增加一个配置:
添加
添加这段话后,每次打开 Tableau ,它就会创建一个 web app,然后你在浏览器里面输入:http://localhost:8696/ ,就能到达调试页面了。
但这里需要注意一个坑,TableauDebuger 呢,是不支持 Chrome 浏览器 80 及以后的,各位需要注意浏览器不要更新到最新。
如果你浏览器版本太新,建议先卸载,然后通过以下网址下载79版本的:
chromedownloads

2. tableau.extensions

好了!让我们来看看 Tableau 扩展能给我们带来什么东西,首先大家可以开着官网 API 文档
API Reference


2.1 点选

在我们的 Debuger 里面的 Console 里面输入:
tableau.extensions
Wow!!
Error
出错了!为什么呢?
因为在 Tableau Server上面我们可以看到,其实 Tableau 是用一个 iFrame 来装我们的扩展的,所以我们需要在左上角top 那个位置点选一下:
点选


2.2 扩展内容

当我们打开时,我们依次展开,对我们最关心的 Dashboard 内容进行查看:
内容
我们能惊奇的发现,这里是对应我们的:
我们
我们的内容都在这里了!!


2.3 worksheet 数据

我们要读取 worksheet 里面的内容怎么办?
我们看回我们刚打开的内容:

这里

打开这里可以看出我们在仪表盘里面的两个工作表内容,还有它的名字,我们想读取它的数据时,我们可以通过一个稍微复杂的语句:

tableau.extensions.dashboardContent.dashboard.worksheets.find(function(w) {
		if (w.name === "Income") { return true; }; 
	})
.getSummaryDataAsync().then(function(sumdata) {
	const worksheetData = sumdata;
	console.log(worksheetData);
});

这段代码的意思是需要读取 工作表 的名字为 “Income” 的数据内容。
( 因为 Tableau Server 的用户可能会有 IE 用户,所以不要写如 let ()=> 等 ES6 的语法 )
出来是什么呢?

内容
对应 “Income” 那个工作表的数据为:
信息源

关注我们读取信息里面的 Columns ,我们会发现,他们的 Columns 就是里面的所有行列以及数据标识均堆叠成一起。再让我们看Data 会清晰很多:

内容
可以看到,Tableau 工作表 里面每一个格子数据,在 Tableau 扩展 中都是根据行列来单独作为一个个体存在的。
好玩不!?


2.4 filter

同样在DebugerConsole里面运行:

wsLoveBerry = tableau.extensions.dashboardContent.dashboard.worksheets.find(function(w) { if (w.name === "Income") { return true; }; });
wsLoveBerry .getFiltersAsync().then(function (filtersForWorksheet) {console.log(filtersForWorksheet);});

我们可以看到:
filter
我们看到 Filter 里面有两个对象,这个就是我们在工作表上定义的数据了!
是不是很神奇?
通过读取他们现在 apply 的数据,我们可以得知现在的 过滤器 选择。
当然,可以获取!肯定可以修改的!

原本我们的Filter 是:
这个
但是当我们运行:

wsLoveBerry.applyFilterAsync("Staff",["爱美丽"],"replace", { isExcludeMode: false })

忽然变成:
改了
这不就改了嘛!


2.5 Parameter

这个是什么东西?

Para
只要我们运行参数

        tableau.extensions.dashboardContent.dashboard.getParametersAsync().then(function(paraPnL) {
            if (paraPnL) {
                paraPnL.forEach(function(elePara) {
                    console.log(elePara);
                });
            };
        });

就行了。
完了

3. 纯粹介绍

本文其实纯粹介绍,我们并没有任何太详细的说明原因是,我们是需要多点看 文档。
之后会继续说个实例的了!

### 在 Tableau 中使用 Python 进行高级数据分析的方法 Tableau 提供了与 Python 集成的能力,使得用户可以在其可视化环境中执行复杂的分析任务。这一集成主要通过 **TabPy** 实现,这是一个由 Tableau 开发并维护的开源项目,允许在 Tableau 中运行 Python 脚本[^1]。 #### 配置 TabPy 服务器 为了在 Tableau 中调用 Python 函数,需要首先部署并配置一个本地或远程的 TabPy 服务器。该服务器充当桥梁,接收来自 Tableau 的请求,并将这些请求转发给 Python 解释器进行处理。安装和启动 TabPy 可以使用如下命令: ```bash pip install tabpy tabpy ``` 默认情况下,TabPy 会在本地主机上的 9004 端口监听连接请求。 #### 在 Tableau 中设置外部服务连接 一旦 TabPy 服务器正在运行,则需在 Tableau 中配置到此服务的连接。这可以通过以下步骤完成: - 打开 Tableau 并进入“帮助”菜单中的“设置/性能”子菜单。 - 选择“管理外部服务连接”,然后点击“添加”按钮来创建新的连接。 - 输入运行 TabPy 的服务器地址(如果是在本地运行,则为 localhost)以及相应的端口号(默认是 9004)。保存更改以确保可以开始使用 Python 脚本功能。 #### 创建计算字段调用 Python 代码 现在可以在 Tableau 内部利用 Python 的强大功能来进行数据处理和建模了。为此,在数据模型中创建一个新的计算字段,并使用 `SCRIPT_*` 类型函数来嵌入 Python 代码。例如,要使用 Scikit-learn 库训练一个线性回归模型并对数据集做出预测,可以编写类似下面的脚本: ```python # Linear Regression Model using sklearn import pandas as pd from sklearn.linear_model import LinearRegression def predict_sales(data): df = pd.DataFrame(data, columns=['Advertising Spend']) X = df[['Advertising Spend']] y = ... # 假设这里有实际的目标变量数据 model = LinearRegression() model.fit(X, y) predictions = model.predict(X) return list(predictions) # This function would be called from within Tableau's SCRIPT_REAL function predict_sales(_arg1) ``` 注意:上述示例中的 `_arg1` 是从 Tableau 传递给 Python 函数的数据参数。根据所使用的 `SCRIPT_*` 函数类型不同(如 `SCRIPT_STR`, `SCRIPT_INT`, `SCRIPT_REAL`, `SCRIPT_BOOL`),返回值也应相应调整其类型。 #### 利用 Python 模型增强可视化效果 借助于这种集成方式,不仅可以执行基本统计分析,还能实施更高级别的机器学习任务,比如分类、聚类或者间序列预测等。生成的结果可以直接用于驱动更加动态且信息丰富的可视化展示,从而让最终用户获得前所未有的洞察力[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值