åãã°ã«ãŒãã®è€æ°ã®å€ã衚瀺ããæ°Žå¹³ç©ã¿äžãæ£ã°ã©ã
@subarrocaç§ã¯éå»ã«ãã®ãããªã³ã³ããŒãã³ãã«ã€ããŠäœäººãã®äººã
ãšè©±ãããŸãã-ããã§ãããã¯ã©ã€ãã©ãªãžã®è¯ãè¿œå ã«ãªããšæããŸãã
å®è£
ãéå§ããåã«ããŸãAPIããããŒã¶ã«ãäœæããŠãã ããã
æåã®èããšè³ªåïŒ
ãããŸã§ã«ããã§çŽé¢ããäž»ãªèª²é¡ã¯ããããæ¥ç¶ãããæ¹æ³ã§æ©èœããå¿
èŠãããããšã§ãïŒããšãã°ãããŒãã«åã§ïŒã
ããã§ã®èª²é¡ã¯ãç¹å®ã®ã¡ããªãã¯ãæ¥ç¶ãããŠãããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã§åãè²ã«ãªãå¿
èŠãããããšã§ãã
è¡1ã¯ãmetricAéãmetricBèµ€ãmetricCé»è²ã瀺ããŠããŸãã
è¡2ã®è¡šç€ºïŒmetricAéãmetricCé»è²
ããã¯ããã£ãŒããè²ä»ãããçŸåšã®ã·ã¹ãã ã«å¯ŸããŠå°ãæ©èœããŸãããã®ãããããã«ã¯ãŸã åé¡ããããŸãã
åãã¡ããªãã¯ãåãæ¹æ³ã§è¡ã«è²ä»ãããã«ã¯ããããéçºè ã«ä»»ããå¿ èŠããããããããŸããã åçŽãªãŠãŒã¹ã±ãŒã¹ãšæ¥ç¶ããããŠãŒã¹ã±ãŒã¹ã®èªåã«ã©ãŒãªã³ã°ã¯ãã·ãªãŒãºã«è²ãèšå®ããå¿ èŠããããŸãã
<dt-single-stacked-bar
[series]="series"
[selected]="selected"
(selectedChange)="onSelect($event)"
valueDisplayMode="percent"
[visibleLegend]="false"
>
<div dtSingleStackedBarOverlay>...</div>
</dt-single-stacked-bar>
DtChartValueMode.ABSOLUTE
DtSingleStackedBarNode
interface DtSingleStackedBarNode {
label: string;
value: number;
color?: DtColors | string;
}
export enum DtChartValueMode {
ABSOLUTE = 'absolute',
PERCENT = 'percent',
}
ããã«ã¡ã¯@subarrocaïŒ
ãããŸã§ã®ãšãããAPIã®ææ¡ã¯è¯ãããã§ãã ç§ã話ãããããšãããã€ããããŸãã
visibleLegendïŒbooleanå¡äŸã衚瀺ãããã©ããã ããã©ã«ãïŒtrue
SingleStackedBarChartãdt-legendã«æ¥ç¶ããå¡äŸãã¬ã³ããªã³ã°ãããå Žæãã³ã³ã·ã¥ãŒããŒã«å®çŸ©ãããããšãæ€èšããå¿
èŠããããšæããŸãã ããŒãã«è¡å
ã®SingleStackedBarChartã®ãŠãŒã¹ã±ãŒã¹ã«ã€ããŠèããŠããŸããããã§ã¯ãããŒãã«èªäœã®æåŸã«ãã°ã©ãã®å¡äŸã衚瀺ãããŸãã
ãã ããããã«ããã httpsïŒ //github.com/dynatrace-oss/barista/issues/884#issuecomment -614602707ã§èª¬æãããŠããããã«ããã£ãŒãéã§å¿
èŠãªéä¿¡ãè¡ããããã£ãŒãã®ã·ãªãŒãºãšè²ãåæãããŸãã åé¿çã¯ãã·ãªãŒãºããã£ãŒãã®è²ã«èªåçã«åŸããªãããã«ããããšã§ããããŠãŒã¶ãŒããã£ãŒãã®è²ãå®çŸ©ã§ããããã«ããŸãã
å€ãã£ãŒãã«è¡šç€ºããã絶察æ°ãŸãã¯çžå¯Ÿæ°
åæåã®ä»£ããã«ãå€ãšããŠ'percent' | 'absolute'
ã®å
±çšäœåã䜿çšããŠãã ããã
ããã«ã¡ã¯@tomhellerïŒ ææ¡ã«ããã€ãã®å€æŽãå ããŠãããé©åã«é©åãããŸããã
ç§ã¯DtSingleStackedBarChartValueDisplayMode
ã䜿çšããŠããŸãã
export type DtSingleStackedBarChartValueDisplayMode =
| 'none'
| 'absolute'
| 'percent';
ããã¯ããªãã®ããã«åããŸããããããšãããªãã¯ã¿ã€ããæããªãããšã奜ã¿ãŸããïŒ
ãŸãã selectable
ãè¿œå ããŸãããããã¯ããã¹ãŠã®å Žåã«éžæå¯èœãªã°ã©ããšããŠäœ¿çšããå¿
èŠãããããã§ã¯ãªãããã§ãã
è²ã¯getDtChartColorPalette
ã§èªåçã«ãã§ãããããŸãããããŒãã«è²ãããå Žåã¯ãå²ãåœãŠãããè²ãäžæžãããã ãã§ãã
å¡äŸã®äœ¿çšã«ã€ããŠã ããããã³ãã¬ãŒãã«å ¥ããŸããã ãããæ¥ç¶ããå¿ èŠããããŸããããããšãäœããã®æ¹æ³ã§å¡äŸãå ¬éããå¿ èŠããããŸããïŒ
ããã¯ããªãã®ããã«åããŸããããããšãããªãã¯ã¿ã€ããæããªãããšã奜ã¿ãŸããïŒ
ããã¯ç§ã«ãšã£ãŠå®ç§ã«æ©èœããŸããïŒ+ 1ïŒ
ãŸãããã¹ãŠã®å Žåã«éžæå¯èœãªãã£ãŒããšããŠäœ¿çšãããããã§ã¯ãªããããéžæå¯èœãªãã®ãè¿œå ããŸããã
ããã¯ç§ã«ãæå¹ã§ããã³ã¡ã³ãã«å€æŽãåæ ããããšãã§ããŸããææ°ã®åäžã®ãœãŒã¹ãããã«ãããŸãhttps://github.com/dynatrace-oss/barista/issues/884#issuecomment-614605963
å¡äŸã®äœ¿çšã«ã€ããŠã ããããã³ãã¬ãŒãã«å ¥ããŸããã ãããæ¥ç¶ããå¿ èŠããããŸããããããšãäœããã®æ¹æ³ã§å¡äŸãå ¬éããå¿ èŠããããŸããïŒ
ç§ãèšãããã£ãã®ã¯ãè€æ°ã®ã°ã©ãã1ã€ã®å¡äŸãå ±æã§ãããšããããšã§ãã ãã®ãããã°ã©ãèªäœã«å¡äŸãåã蟌ãããšã¯ã§ããªããšæããŸããããã®ãããªããšãè¡ãå¿ èŠããããŸãã è¡ãæå³çã«æ¥ç¶ãããŠãããããŒãã«ãŸãã¯ãã®ä»ã®çš®é¡ã®ç¹°ãè¿ãããŒã¿è¡šçŸãæ³åããŠã¿ãŠãã ããã
<dt-dummy-table>
<dt-dummy-row *ngFor="let row of rows">
<dt-single-stacked-bar [series]="row.series" legend="dummyTableLegend">
</dt-single-stacked-bar>
</dt-dummy-row>
</dt-dummy-table>
<dt-single-stacked-bar-legend #dummyTableLegend>
<!-- ... ? -->
</dt-single-stacked-bar-legend>
ãã®ããã«ããã¹ãŠã®è¡å
ã«å¡äŸãã¬ã³ããªã³ã°ããã®ã§ã¯ãªããããŒãã«ã®æåŸã«ããã¹ãŠã®ã·ãªãŒãºãã€ã³ããåéãããããã®ã¢ã€ã³ã³ãšã©ãã«ã衚瀺ããå¿
èŠããããŸãã
ããããåãã·ãªãŒãºã®ããŒãã«å
ã®ãã¹ãŠã®ãã£ãŒãã§åãè²ã§ããå¿
èŠãããããããã£ãŒãã®è²ããã£ãŒãããšã«èªåçã«ååŸã§ããªãå Žåãããçç±ã§ãã ããšãã°ãè¡7ã§ã1ã€ã®ã·ãªãŒãºãæ¬ èœããŠããå Žåã§ãã
ãããç解ã§ãããšããã®ã§ããïŒ
ã¯ããå®å šã«ç解ã§ããŸãã å¡äŸãæäœããŠãã°ã©ãã®èŠçŽ ãé衚瀺ãŸãã¯è¡šç€ºããããšæããŸããã
ãã°ããããŠå®çŸ©ãæŽæ°ããŸã
<dt-single-stacked-bar
[series]="series"
[selected]="selected"
(selectedChange)="onSelect($event)"
valueDisplayMode="percent"
[visibleLegend]="false"
>
<div dtSingleStackedBarOverlay>...</div>
</dt-single-stacked-bar>
none
DtSingleStackedBarChartNode
interface DtSingleStackedBarChartNode {
label: string;
value: number;
color?: DtColors | string;
}
export type DtSingleStackedBarChartValueDisplayMode =
| 'none'
| 'absolute'
| 'percent';
ãã¶ããåäžã®ç©ã¿äžãæ£ã°ã©ãã®è€æ°ã®ãã®ãæ¥ç¶ããããšãèããå Žåã max
å
¥åã®ãããªãã®ã圹ç«ã€ã§ãããã äœãæå®ãããŠããªãå Žåã¯ããã¹ç³»åã®åèšãšããŠæ倧å€ãèšç®ã§ããŸãããè€æ°ã®ãã¹ãããå Žåã¯ãæ¯èŒã§ããããã«åãã¹ã±ãŒã«ã§ãããã䜿çšããããšããå§ãããŸãã
ãããšå€éšã®å¡äŸã¯ãããããããã«åãçµãå¿ èŠã®ãããã®ã§ã¯ãããŸãããããã¯ãåŸã§å€æŽãå ããããšãªããªãã·ã§ã³ãšããŠæ¡åŒµã§ãããšæãããã§ãã
ææ¡ã®åŸããã®ã³ã³ããŒãã³ãã¯è€æ°ã®ã·ãªãŒãºã§åå©çšã§ããå¯èœæ§ãããããšãèæ
®ããŠãã¢ããã°ã¬ãŒããã single
ãšã¯åŒã°ãªãããšã«ããŸããã ã·ã³ã°ã«ã¯ãã ã®å Žåã§ãã
<dt-stacked-bar
[series]="series"
[selectable]="selectable"
[(selected)]="selected"
[valueDisplayMode]="valueDisplayMode"
[direction]="direction"
[labelPosition]="labelPosition"
[legendPosition]="legendPosition"
[legends]="legends"
[fillMode]="fillMode"
[maxBarSize]="maxBarSize"
[max]="max"
>
<ng-template dtStackedBarChartOverlay let-tooltip>
<strong>{{ tooltip.seriesOrigin.label }}</strong>
<div>{{ tooltip.origin.label }}: {{ tooltip.origin.value }}</div>
</ng-template>
</dt-stacked-bar>
none
top
bottom
DtStackedBarChartSeries
ããã³DtStackedBarChartNode
interface DtStackedBarChartSeries {
label: string;
nodes: DtStackedBarChartNode[];
}
interface DtStackedBarChartNode {
label: string;
value: number;
color?: DtColors | string;
}
interface DtStackedBarChartTooltipData {
origin: DtStackedBarChartNode;
seriesOrigin: DtStackedBarChartSeries;
valueRelative: number;
color: DtColors | string;
visible: boolean;
selected: boolean;
length?: string;
}
series
é
åã§ãŠãŒã¶ãŒããæž¡ãããoriginããŒãtype DtStackedBarChartValueDisplayMode = 'none' | 'absolute' | 'percent';
type DtStackedBarChartElementPosition =
| 'none'
| 'top'
| 'right'
| 'bottom'
| 'left';
type DtStackedBarChartFillMode = 'full' | 'relative';
type DtStackedBarChartDirection = 'horizontal' | 'vertical';
ããã«ã¡ã¯@subarrocaïŒ
ããã¯ãæ£ã°ã©ããæ¡åŒµããããã®å€å€§ãªåªåã§ãã èæ
®ãã¹ãç¹ãããã€ããããŸãã
暪æ£/瞊æ£vsæ£ã°ã©ããšçžŠæ£ã°ã©ã
ã°ã©ãäœæã§ã¯ãåçŽæ£ã°ã©ãã¯éåžžã瞊æ£ã°ã©ããšåŒã°ããŸãã ãã®åºæºããéžè±ããããã©ããã¯ããããŸããã ç§ã¯2ã€ã®ã³ã³ããŒãã³ãdt-stacked-column-chart
ãšdt-stacked-bar-chart
ãäœæããããšãéžæããŸãããããã¯ãåºæ¬ã¯ã©ã¹ãã€ãŸãDtStackedBarColumnChartBase
ãä»ããŠå
éšããžãã¯ã®ã»ãšãã©ãå
±æã§ããŸãã
ã»ã¬ã¯ã¿
ã³ã³ããŒãã³ããäœãè¡šãããæ確ã«ããããã«ãã»ã¬ã¯ã¿ãŒå
ã«ããã£ãŒãããšããåèªãå«ããŠãã ããã
æ¹åå
¥å
ãããã2ã€ã®ã³ã³ããŒãã³ãã«åå²ããã°ãããããããå¿
èŠãªãã§ãããã
labelPositionïŒDtStackedBarChartElementPosition
ãããããäž¡æ¹ã«é©åãã瞊æ£ã°ã©ããšæ£ã°ã©ãã«çããé©çšã§ããã¿ã€ããèŠã€ããããšãã§ããŸãã å·Š/å³ã¯çžŠæ£ã°ã©ãã§ã¯ããŸãæå³ããªããäž/äžã¯æ£ã°ã©ãã§ã¯ããŸãæå³ããªãã®ã§ã start | end
ã®ãããªãã®ã§è¡ãããšãã§ããŸããïŒ
legendPositionïŒDtStackedBarChartElementPosition
ç§ã¯ãããçŸåšã®ã¬ãã«ã§åé€ããå¡äŸã®åºå®äœçœ®ãæäŸããããšãéžæããŸãã çŸæç¹ã§ã¯ãããžã·ã§ã³ãå®çŸ©ããããã®ã¡ãªããããŠãŒã¹ã±ãŒã¹ã¯èŠåœãããŸããã çŸåšã®ãšãããæ£ã°ã©ã/瞊æ£ã°ã©ãã®ãã¹ãŠã®å¡äŸã¯ã°ã©ãã®äžã«ãããŸãã
maxBarSizeïŒæ°å€
ããã¯åäžã®å/ããŒã®maxWidthãæããŠãããšæããŸããããããããããå¥ã®ååãã€ãŸãmaxTrackSize
ã§åãšããŒã®éã§å
±æããæ¹æ³ãèŠã€ããããšãã§ããŸãã
APIææ¡ã«ã¯ã軞ã軞ã©ãã«ãç®çãããµã€ãºã«é¢ããæ å ±ã¯å«ãŸããŠããŸããã åŸã§è¿œå ã®ã¹ãããã§ãããè¡ãããšãã§ãããšæããŸãã
ããã¯éåžžã«å€§ããªã³ã³ããŒãã³ãã®ããã«æãããã®ã§ããããåå²ããŠãéå§ããããã®æå°éã®å®è¡å¯èœãªè£œåãå®çŸ©ããããšã¯å®è¡å¯èœã ãšæããŸãã ããã§ãªããã°ãç§ã¯ãããããªãé·ãæéããããã®ãèŠãŸãã ãã®@ffriedl89@subarrocaã«ã€ããŠã©ãæããŸããïŒ
ããïŒ
ãŸã第äžã«ãç§ãææ¡ããããšã¯ãã¹ãŠãã§ã«è¡ãããŠããã®ã§ããã¹ããé€ããŠãããè¡ãã®ã«ããã»ã©æéã¯ããããŸãã
ã»ã¬ã¯ã¿
ååã«ã¯ãã§ã«ããã£ãŒãããå«ãŸããŠããŸãããããã§å¿ããŠããŸããŸããã
æ£ã°ã©ã/瞊æ£ã°ã©ãã«ã€ããŠ
å®éã®ãšãããããã¯1ã€ã®ãã³ãã¬ãŒãã§1ã€ã®ã³ã³ããŒãã³ãã§ãã§ã«è¡ãããŠãããã°ãªããã¬ã€ã¢ãŠããšèŠçŽ ã®é
眮ã䜿çšããŠãããããåå¥ã®ã³ã³ããŒãã³ãã®ã¢ãããŒãã¯äœ¿çšããŸããã direction
ã®ååãtype: 'bar' | 'column'
ã«å€æŽã§ããŸã
ã©ãã«ã®äœçœ®
UXã®è©Šçšçãããã€ã瀺ãããšããæ£ã°ã©ãã®å·ŠåŽã«ã©ãã«ãä»ããããšãã§ãããšææ¡ãããã®ã§ãäžãäžãå·Šãå³ã ãã§ç»åãå®æããããã«èŠããŸããããããŸã圹ã«ç«ã¡ãŸããã å³ãšå·Šãåãé€ãããšãã§ãããã©ããã確èªããããã«åœŒããšè©±ãããŸã
å¡äŸã®äœçœ®
ç°¡åã«åãå€ãå¯èœ
maxBarSize
ååãbar|column
ã«å€æŽãããšãææ¡ã©ããã«ååãå€æŽããã®ãçã«ããªã£ãŠããŸãã
軞
瞊æ£ã°ã©ãã®x軞ç·ãæ©èœããŠããŸãã ã©ãããããããvalueAxisããè¿œå ããå¿
èŠããããšæããŸãããã次ã®ãã§ãŒãºã§ã¯ããããå
ã®å¶éãã¯ããã«è¶
ããŠæé·ããç°¡åã«è¿œå ã§ããããã«ãªããšèããŠããŸããã
ïŒ988ã§éé