スタック プロットの実装に必要な機能の一部を定義する抽象
説明
| 新しい StackableChartLayer を初期化します。 |
| この ChartLayer の Y 軸生成を考慮するかどうかを決定します。 |
| この ChartLayer の |
| プロットされる ChartLayer.y-axis-data に |
| data に関連した最小値と最大値を決定します。 |
| この ChartLayer の |
| この ChartLayer の |
新しい StackableChartLayer を初期化します。
この ChartLayer の Y 軸生成を考慮するかどうかを決定します。
説明
この ChartLayer の
説明
注意事項
例
| 例: StackableChartLayer.stacking-mode の変更 | |
![]() | |
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
location = "../docstring-support/gui/charts-doc.scurl"
}
{let chart:LayeredChart =
{LayeredChart
width = 17cm,
height = 10cm,
left-axis-parent =
{ShapeGroup
axis-label = "Sales",
tick-label-factory =
{proc {axis:ChartAxis, tick:ChartTick, tick-rotation:Angle}:any
let constant val:double = tick.value asa double
{return
{if val >= 1e9 then
{format "%gB", val / 1e9}
elseif val >= 1e6 then
{format "%gM", val / 1e6}
else
{format "%g", val}
}
}
}
},
{BarLayer
sample-sales-records,
"north-america-sales",
"europe-sales",
"asia-sales",
"service-revenue",
x-axis-data = {ChartDataSeries sample-sales-records, "period"}
}
}
}
{value chart}
{RadioFrame
{HBox
spacing = 4pt,
{RadioButton radio-value = ChartStackingMode.none, value = true},
{RadioButton radio-value = ChartStackingMode.stacked},
{RadioButton radio-value = ChartStackingMode.percent}
},
{on ValueFinished at rf:RadioFrame do
let constant layer:BarLayer = chart.layers[0] asa BarLayer
set layer.stacking-mode = rf.value asa ChartStackingMode
}
}
|
プロットされる ChartLayer.y-axis-data に
説明
data に関連した最小値と最大値を決定します。
戻り値
説明
この ChartLayer の
戻り値
説明
注意事項
例
| 例: ChartDataMapping を使用しての Shape のグラフへの追加 | |
![]() | |
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
location = "../docstring-support/gui/charts-doc.scurl"
}
{let chart:LayeredChart =
{LayeredChart
width = 15cm,
height = 6cm,
{BarLayer
sample-records,
"Age",
x-axis-data = {ChartDataSeries sample-records, "Name"}
},
{LineLayer
sample-records,
"Wins"
},
{on ChartLayoutChanged do
|| Give big winners a gold diamond
let constant layer:ChartLayer = chart.layers[1]
let constant map:ChartDataMapping =
{layer.get-data-mapping layer.y-axis-data[0]}
let index:int = 0
{for record in sample-records do
{if record["Wins"] asa int >= 6 then
let constant (pos:Distance2d, y-was-null?:bool) =
{map.get-position record, index}
{if not y-was-null? then
|| Don't add shapes for records with null values.
let constant size:Distance =
3 * {sqrt 2} * {layer.get-display-context}.pixel-size
{layer.add
{RectangleShape
{GRect size, size, size, size},
translation = pos,
rotation = 45deg,
color = "gold",
tooltip =
{Tooltip
{format
"%s got %d wins!",
record["Name"],
record["Wins"]
}
}
}
}
}
}
{inc index}
}
}
}
}
{value chart}
|
この ChartLayer の
戻り値
説明
注意事項
例
| 例: 次の使用: ChartInverseDataMapping | |
![]() | |
{import * from CURL.GUI.CHARTS}
{import * from CHARTS-DOC,
location = "../docstring-support/gui/charts-doc.scurl"
}
{let bar-display:TextDisplay = {TextDisplay width = 4cm}}
{let line-display:TextDisplay = {TextDisplay width = 4cm}}
{let chart:LayeredChart =
{LayeredChart
width = 15cm,
height = 6cm,
{BarLayer
sample-records,
"Age",
x-axis-data = {ChartDataSeries sample-records, "Name"}
},
{LineLayer
sample-records,
"Wins"
},
{on e:PointerMotion do
let layer:ChartLayer = chart.layers[0]
let inverse-mapping:ChartInverseDataMapping =
{non-null {layer.get-inverse-data-mapping layer.y-axis-data[0]}}
let (x:any, y:any) = {inverse-mapping.get-values e.x, e.y}
set bar-display.value = x & ", " & y
set layer = chart.layers[1]
set inverse-mapping =
{non-null {layer.get-inverse-data-mapping layer.y-axis-data[0]}}
set (x, y) = {inverse-mapping.get-values e.x, e.y}
set line-display.value = x & ", " & y
}
}
}
{Table
cell-border-width = 1pt,
cell-border-color = FillPattern.silver,
{row-prototype
font-weight = FontWeight.bold,
{text BarLayer (Age)},
{text LineLayer (Wins)}
},
{row-prototype bar-display, line-display},
{row-prototype
{cell-prototype
colspan = 2,
chart
}
}
}
|