Pivot Widget examples
Warning
Legacy documentation: This documentation applies to Legacy Deephaven Enterprise only and does not apply to Core+.
Example heat maps
The following examples, scripted in Groovy, demonstrate the .setColorFormat method and its various implementations.
Each example modifies the same pivot widget created from the StockTrades table:
import com.illumon.iris.console.utils.PivotWidgetBuilder
t=db.t("LearnDeephaven", "StockTrades").where("Date=`2017-08-21`")
Example 1
A = {val -> val < 50000 ? "BLUE" : "GREEN"}
colorFormatA = PivotWidgetBuilder.pivot(t, "USym", "Exchange", "Last")
.sum().across().down()
.heatMap().setColorFormat(A)
.show()

Example 2
B = {val -> val < 50000 ? COLOR_BLUE : COLOR_GREEN}
colorFormatB = PivotWidgetBuilder.pivot(t, "USym", "Exchange", "Last")
.sum().across().down()
.heatMap().setColorFormat(B)
.show()

Example 3
import com.illumon.iris.db.util.DBColorUtil
C = {val -> val < 50000 ? DBColorUtil.VIVID_GREEN : DBColorUtil.VIVID_BLUE}
colorFormatC = PivotWidgetBuilder.pivot(t, "USym", "Exchange", "Last")
.sum().across().down()
.heatMap().setColorFormat(C)
.show()

Example 4
import com.illumon.iris.db.util.DBColorUtil
D = {val -> val < 50000 ? DBColorUtil.toLong("BLUE") : DBColorUtil.toLong("GREEN")}
colorFormatD = PivotWidgetBuilder.pivot(t, "USym", "Exchange", "Last")
.sum().across().down()
.heatMap().setColorFormat(D)
.show()

Example 5
import com.illumon.iris.db.util.DBColorUtil
a = DBColorUtil.toLong("BLUE")
b = DBColorUtil.toLong("GREEN")
E = {val -> val < 50000 ? a : b}
colorFormatE = PivotWidgetBuilder.pivot(t, "USym", "Exchange", "Last")
.sum().across().down()
.heatMap().setColorFormat(E)
.show()

Example 6
import com.illumon.iris.gui.color.Color
F = {val -> val < 50000 ? Color.LAWNGREEN : Color.LIGHTCYAN}
colorFormatF = PivotWidgetBuilder.pivot(t, "USym", "Exchange", "Last")
.sum().across().down()
.heatMap().setColorFormat(F)
.show()

Example 7
By default, the minimum and maximum values will apply to all the columns in the Pivot Widget. It is also possible to set the min/max coloring ranges dynamically per column by including multiple setColorFormat arguments within your query.
A = {val -> val < 50000 ? "BLUE" : "GREEN"}
B = {val -> val < 500000 ? "RED" : "YELLOW"}
C = {val -> val < 50000 ? "PINK" : "ORANGE"}
colorFormatG = PivotWidgetBuilder.pivot(t, "USym", "Exchange", "Last")
.sum().across().down()
.heatMap().setColorFormat(A)
.heatMap().setColorFormat(C, "Nyse")
.heatMap().setColorFormat(B, "Bats","Arca")
.show()

Example 8
To allow heat maps for String data, include the unique() aggregator in your query.
import com.illumon.iris.console.utils.PivotWidgetBuilder
t=db.t("LearnDeephaven", "StockTrades").where("Date=`2017-08-21`")
C = {val -> "INTC".equals(val) ? "BLUE" : "ORANGE"}
D = {val -> !"INTC".equals(val) ? "BLUE" : "ORANGE"}
E = {val -> val.contains('X') ? "RED" : "GREEN"}
colorFormatString = PivotWidgetBuilder.pivot(t.firstBy("USym", "Exchange"), "USym", "Exchange", "Sym")
.unique()
.setColorFormat(C)
.setColorFormat(D, "Nyse", "Nasdaq")
.setColorFormat(E, "Bats")
.show()
