Barista: 단일 λˆ„μ  λ§‰λŒ€ 차트

에 λ§Œλ“  2020λ…„ 04μ›” 16일  Β·  14μ½”λ©˜νŠΈ  Β·  좜처: dynatrace-oss/barista

κΈ°λŠ₯ μš”μ²­

μš”μ•½

λ™μΌν•œ 그룹의 μ—¬λŸ¬ 값을 ν‘œμ‹œν•˜λŠ” κ°€λ‘œ λˆ„μ  λ§‰λŒ€ 차트

κΈ°λŠ₯ μ„€λͺ…

  • 전체 λ„ˆλΉ„λ₯Ό μ±„μš°λŠ” μŠ€νƒμ˜ λͺ¨λ“  κ°’ ν‘œμ‹œ
  • λ²”λ‘€ ν‘œμ‹œ
  • 각 μ„Έκ·Έλ¨ΌνŠΈμ— λŒ€ν•΄ λ³„λ„μ˜ μ˜€λ²„λ ˆμ΄ ν‘œμ‹œ
  • λ²”λ‘€λ₯Ό ν΄λ¦­ν•˜λ©΄ μ„Έκ·Έλ¨ΌνŠΈ 쀑 ν•˜λ‚˜κ°€ λΉ„ν™œμ„±ν™”λ˜κ³  숨겨져 차트의 λ‚˜λ¨Έμ§€ 뢀뢄이 100%λ₯Ό μ°¨μ§€ν•˜κ²Œ λ©λ‹ˆλ‹€.
  • μ„Έκ·Έλ¨ΌνŠΈλ₯Ό ν΄λ¦­ν•˜λ©΄ μ„ νƒν•˜κ³  선택 μƒ‰μƒμœΌλ‘œ μΉ ν•˜κ³  선택을 좜λ ₯ν•΄μ•Ό ν•©λ‹ˆλ‹€.

첨뢀 파일

https://demo.dev.dynatracelabs.com/ui/user-sessions/-15832438029561I824BXYQV8TZOYSTZUSOXWK1WONTSJ6?gtf=2020-04%20to%202020-05&gf=all
image

feature has-pr new component

λͺ¨λ“  14 λŒ“κΈ€

@subarroca 과거에 μ΄λŸ¬ν•œ ꡬ성 μš”μ†Œμ— λŒ€ν•΄ λͺ‡ μ‚¬λžŒκ³Ό μ΄μ•ΌκΈ°ν•œ 적이 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 이것이 λΌμ΄λΈŒλŸ¬λ¦¬μ— 쒋은 μΆ”κ°€ κΈ°λŠ₯이 될 것이라고 μƒκ°ν•©λ‹ˆλ‹€.
κ΅¬ν˜„μ„ μ‹œμž‘ν•˜κΈ° 전에 λ¨Όμ € API μ œμ•ˆμ„ μž‘μ„±ν•˜μ‹­μ‹œμ˜€.

초기 생각 및 질문:

  • λ²”λ‘€λŠ” 선택 사항이어야 ν•©λ‹ˆλ‹€.
  • λ²”λ‘€μ˜ λ§‰λŒ€ μ•„μ΄μ½˜μ΄ 여기에 μ˜¬λ°”λ₯΄μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • νˆ΄νŒμ€ λ‹€λ₯Έ μ°¨νŠΈμ™€ μœ μ‚¬ν•˜κ²Œ μž‘λ™ν•΄μ•Ό ν•˜λ©° ng-ν…œν”Œλ¦Ώμ—μ„œ μ œκ³΅λ˜λŠ” μ»¨ν…μŠ€νŠΈλ₯Ό 가져와야 ν•©λ‹ˆλ‹€.
  • λͺ¨λ“  μš”μ†Œλ₯Ό β€‹β€‹μˆ¨κΈΈ 수 μ—†λŠ”μ§€ 확인해야 ν•©λ‹ˆλ‹€. 항상 μ΅œμ†Œν•œ ν•˜λ‚˜μ˜ μš”μ†Œκ°€ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.
  • 선택 색상은 λ¬΄μ—‡μž…λ‹ˆκΉŒ? λ‹€λ₯Έ μ°¨νŠΈμ™€ λ§ˆμ°¬κ°€μ§€λ‘œ 3개 μ΄μƒμ˜ λ©”νŠΈλ¦­μ΄ μ—†λŠ” ν•œ μ°¨νŠΈλŠ” ν…Œλ§ˆ 색상이어야 ν•©λ‹ˆλ‹€. 선택 색상은 μ–΄λ””μ—μ„œ μ™”μŠ΅λ‹ˆκΉŒ? μš°λ¦¬λŠ” ν…Œλ§ˆμ— 그것을 가지고 μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

과거에 이 λ¬Έμ œμ— μ§λ©΄ν•œ μ£Όμš” λ¬Έμ œλŠ” μ—°κ²°λœ 방식(예: ν…Œμ΄λΈ” μ—΄μ—μ„œ)으둜 μž‘λ™ν•΄μ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
μ—¬κΈ°μ„œ λ¬Έμ œλŠ” νŠΉμ • λ©”νŠΈλ¦­μ΄ μ—°κ²°λœ λͺ¨λ“  μΈμŠ€ν„΄μŠ€μ—μ„œ λ™μΌν•œ 색상을 κ°€μ Έμ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
ν–‰ 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>

μž…λ ₯

  • μ‹œλ¦¬μ¦ˆ: DtSingleStackedBarNode[] ν‘œμ‹œν•  μ •λ³΄μ˜ λ…Έλ“œ
  • 선택됨: DtSingleStackedBarNode 선택할 λ…Έλ“œ
  • valueDisplayMode: DtChartValueMode κ°’ ν‘œμ‹œ ν˜•μ‹μž…λ‹ˆλ‹€. κΈ°λ³Έ DtChartValueMode.ABSOLUTE
  • visibleLegend: λΆ€μšΈ 날씨 λ²”λ‘€λ₯Ό ν‘œμ‹œν• μ§€ μ—¬λΆ€. κΈ°λ³Έκ°’: μ°Έ

좜λ ₯

  • selectedChange: EventEmitter DtSingleStackedBarNode 선택됨

μ½˜ν…μΈ  ν”„λ‘œμ μ…˜

  • dtSingleStackedBarOverlay

λͺ¨λΈ

interface DtSingleStackedBarNode {
  label: string;
  value: number;
  color?: DtColors | string;
}
  • λ ˆμ΄λΈ” μ°¨νŠΈμ— ν‘œμ‹œν•  λ ˆμ΄λΈ”
  • κ°’ μ°¨νŠΈμ— ν‘œμ‹œλ˜λŠ” μ ˆλŒ€ λ˜λŠ” μƒλŒ€ 숫자
  • 색상 선택 사항. 색상이 ν• λ‹Ήλœ 색상보닀 μš°μ„  μ μš©λ˜μ–΄μ•Ό ν•˜λŠ” 경우 μ—¬κΈ°μ—μ„œ μ„€μ •ν•˜μ‹­μ‹œμ˜€.
export enum DtChartValueMode {
  ABSOLUTE = 'absolute',
  PERCENT = 'percent',
}

그림 물감

  • 3 μ΄ν•˜μΈ 경우 ν…Œλ§ˆλ₯Ό 따라야 함
  • 3개 이상인 경우 일반 차트 νŒ”λ ˆνŠΈλ₯Ό 따라야 함
  • μ‚¬μš©μžκ°€ ν•˜λ‚˜λ₯Ό ν‘œμ‹œν•˜λ©΄ 색상이 λ¬΄μ‹œλ©λ‹ˆλ‹€.
  • μ„ νƒν•œ 색상은 청둝색이어야 ν•©λ‹ˆλ‹€.

μ „μ„€

  • 곡톡 글머리 기호λ₯Ό ν‘œμ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • λ ˆμ΄λΈ”κ³Ό 값을 ν‘œμ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ―Έμ •

  • λͺ¨λ“  λ…Έλ“œκ°€ λΉ„ν™œμ„±ν™”λ˜λ©΄ μ–΄λ–»κ²Œ λ©λ‹ˆκΉŒ?

μ•ˆλ…•ν•˜μ„Έμš” @subarrocaμž…λ‹ˆλ‹€!
API μ œμ•ˆμ€ μ§€κΈˆκΉŒμ§€ μ’‹μ•„ λ³΄μž…λ‹ˆλ‹€. λ‚΄κ°€ λ…Όμ˜ν•˜κ³  싢은 λͺ‡ 가지.

μž…λ ₯

visibleLegend: λΆ€μšΈ λ²”λ‘€λ₯Ό ν‘œμ‹œν• μ§€ μ—¬λΆ€μž…λ‹ˆλ‹€. κΈ°λ³Έκ°’: μ°Έ

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

λ²”λ‘€μ˜ μ‚¬μš©μ— λŒ€ν•΄. ν…œν”Œλ¦Ώμ— λ„£μ—ˆμŠ΅λ‹ˆλ‹€. μ—°κ²°ν•΄μ•Ό ν•˜κ±°λ‚˜ λ²”λ‘€λ₯Ό μ–΄λ–»κ²Œλ“  λ…ΈμΆœν•΄μ•Ό ν•©λ‹ˆκΉŒ?

λ‚΄κ°€ λ§ν•˜λ €κ³  ν–ˆλ˜ μš”μ μ€ μ—¬λŸ¬ μ°¨νŠΈκ°€ ν•˜λ‚˜μ˜ λ²”λ‘€λ₯Ό κ³΅μœ ν•  수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— 차트 μžμ²΄μ— λ²”λ‘€λ₯Ό 포함할 μˆ˜λŠ” μ—†μ§€λ§Œ 이와 같이 ν•΄μ•Ό ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 행이 의미적으둜 μ—°κ²°λœ ν…Œμ΄λΈ”μ΄λ‚˜ λ‹€λ₯Έ μ’…λ₯˜μ˜ 반볡 데이터 ν‘œν˜„μ„ 상상해 λ³΄μ‹­μ‹œμ˜€.

<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ν–‰μ—μ„œ ν•˜λ‚˜μ˜ μ‹œλ¦¬μ¦ˆκ°€ λˆ„λ½λœ κ²½μš°μ—λ„ λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€.

이것이 이해할 수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

예, μ™„μ „νžˆ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€. 범둀와 μƒν˜Έ μž‘μš©ν•˜κ³  차트의 μš”μ†Œλ₯Ό μˆ¨κΈ°κ±°λ‚˜ ν‘œμ‹œν•˜κ³  μ‹Άλ‹€κ³  μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.

μž μ‹œ 후에 μ •μ˜λ₯Ό μ—…λ°μ΄νŠΈν•˜κ² μŠ΅λ‹ˆλ‹€.

<dt-single-stacked-bar
  [series]="series"
  [selected]="selected"
  (selectedChange)="onSelect($event)"
  valueDisplayMode="percent"
  [visibleLegend]="false"
  >
  <div dtSingleStackedBarOverlay>...</div>
</dt-single-stacked-bar>

μž…λ ₯

  • μ‹œλ¦¬μ¦ˆ: DtSingleStackedBarChartNode[] ν‘œμ‹œν•  μ •λ³΄μ˜ λ…Έλ“œ
  • 선택됨: DtSingleStackedBarChartNode 선택 될 λ…Έλ“œ
  • 선택 κ°€λŠ₯: λΆ€μšΈ μ°¨νŠΈμ—μ„œ 선택을 ν—ˆμš©ν•©λ‹ˆλ‹€. κΈ°λ³Έκ°’: 거짓
  • valueDisplayMode: DtSingleStackedBarChartValueDisplayMode κ°’ ν‘œμ‹œ ν˜•μ‹μž…λ‹ˆλ‹€. κΈ°λ³Έκ°’: none
  • visibleLegend: λΆ€μšΈ 날씨 λ²”λ‘€λ₯Ό ν‘œμ‹œν• μ§€ μ—¬λΆ€. κΈ°λ³Έκ°’: μ°Έ

좜λ ₯

  • selectedChange: EventEmitter DtSingleStackedBarChartNode 선택됨

μ½˜ν…μΈ  ν”„λ‘œμ μ…˜

  • dtSingleStackedBarOverlay

λͺ¨λΈ

interface DtSingleStackedBarChartNode {
  label: string;
  value: number;
  color?: DtColors | string;
}
  • λ ˆμ΄λΈ” μ°¨νŠΈμ— ν‘œμ‹œν•  λ ˆμ΄λΈ”
  • κ°’ μ°¨νŠΈμ— ν‘œμ‹œλ˜λŠ” μ ˆλŒ€ λ˜λŠ” μƒλŒ€ 숫자
  • 색상 선택 사항. 색상이 ν• λ‹Ήλœ 색상보닀 μš°μ„  μ μš©λ˜μ–΄μ•Ό ν•˜λŠ” 경우 μ—¬κΈ°μ—μ„œ μ„€μ •ν•˜μ‹­μ‹œμ˜€.
export type DtSingleStackedBarChartValueDisplayMode =
  | 'none'
  | 'absolute'
  | 'percent';

그림 물감

  • 3 μ΄ν•˜μΈ 경우 ν…Œλ§ˆλ₯Ό 따라야 함
  • 3개 이상인 경우 일반 차트 νŒ”λ ˆνŠΈλ₯Ό 따라야 함
  • μ‚¬μš©μžκ°€ ν•˜λ‚˜λ₯Ό ν‘œμ‹œν•˜λ©΄ 색상이 λ¬΄μ‹œλ©λ‹ˆλ‹€.
  • μ„ νƒν•œ 색상은 청둝색이어야 ν•©λ‹ˆλ‹€.

μ „μ„€

  • 곡톡 글머리 기호λ₯Ό ν‘œμ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • λ ˆμ΄λΈ”κ³Ό 값을 ν‘œμ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • 클릭 μ‹œ 슬라이슀λ₯Ό μˆ¨κ²¨μ•Ό ν•©λ‹ˆλ‹€.
  • λ§ˆμ§€λ§‰μœΌλ‘œ λ³΄μ΄λŠ” λ…Έλ“œλŠ” 숨길 수 μ—†μŠ΅λ‹ˆλ‹€

단일 μŠ€νƒ λ§‰λŒ€ 차트의 μ—¬λŸ¬ 연결에 λŒ€ν•΄ μƒκ°ν•œλ‹€λ©΄ 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>

μž…λ ₯

  • μ‹œλ¦¬μ¦ˆ: DtStackedBarChartSeries[] ν‘œμ‹œν•  정보 μ‹œλ¦¬μ¦ˆ
  • 선택 κ°€λŠ₯: λΆ€μšΈ μ°¨νŠΈμ—μ„œ 선택을 ν—ˆμš©ν•©λ‹ˆλ‹€. κΈ°λ³Έκ°’: 거짓
  • 선택됨: [DtStackedBarChartSeries, DtStackedBarChartNode] μ‹œλ¦¬μ¦ˆ 및 선택할 λ…Έλ“œμž…λ‹ˆλ‹€.
  • valueDisplayMode: DtStackedBarChartValueDisplayMode ν•˜λ‚˜μ˜ κ³„μ—΄λ§Œ 제곡된 경우 κ°’μ˜ ν‘œμ‹œ ν˜•μ‹μž…λ‹ˆλ‹€. κΈ°λ³Έκ°’: none
  • λ°©ν–₯: DtStackedBarChartDirection 차트의 λ§‰λŒ€ λ°©ν–₯μž…λ‹ˆλ‹€. κΈ°λ³Έκ°’: μˆ˜ν‰
  • labelPosition: DtStackedBarChartElementPosition λ§‰λŒ€μ™€ κ΄€λ ¨λœ λ ˆμ΄λΈ”μ˜ μœ„μΉ˜μž…λ‹ˆλ‹€. κΈ°λ³Έκ°’: top
  • legendPosition: DtStackedBarChartElementPosition λ²”λ‘€λ₯Ό ν‘œμ‹œν•΄μ•Ό ν•˜λŠ” μœ„μΉ˜ 및 μ—¬λΆ€μž…λ‹ˆλ‹€. κΈ°λ³Έκ°’: bottom
  • λ²”λ‘€: DtStackedBarChartLegend[] λ§‰λŒ€ λ…Έλ“œλ₯Ό μ „ν™˜ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆλŠ” λ²”λ‘€μ˜ λ°°μ—΄μž…λ‹ˆλ‹€. μ‚¬μš©λœ λ²”λ‘€κ°€ 이 κ΅¬μ„±μš”μ†Œ 외뢀에 μžˆμ„ λ•Œ μœ μš©ν•©λ‹ˆλ‹€.
  • fillMode: DtStackedBarChartFillMode 각 λ§‰λŒ€κ°€ μ™„μ „νžˆ μ±„μ›Œμ Έμ•Ό ν•˜λŠ”μ§€ μ•„λ‹ˆλ©΄ ν˜•μ œμ™€ μ΅œλŒ€κ°’μ„ κ³ λ €ν•΄μ•Ό ν•˜λŠ”μ§€ μ—¬λΆ€
  • maxBarSize: 숫자 λ§‰λŒ€μ˜ μ΅œλŒ€ ν¬κΈ°μž…λ‹ˆλ‹€. κΈ°λ³Έκ°’: 16
  • max: 숫자 차트의 μ΅œλŒ€ κ°’

좜λ ₯

  • selectedChange: EventEmitter<[DtStackedBarChartSeries, DtStackedBarChartNode]> DtStackedBarChartSeries 및 DtStackedBarChartNode 선택됨

μ½˜ν…μΈ  ν”„λ‘œμ μ…˜

  • dtStackedBarOverlay

λͺ¨λΈ

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 λ°°μ—΄μ—μ„œ μ‚¬μš©μžκ°€ μ „λ‹¬ν•œ 원본 λ…Έλ“œ
  • seriesOrigin μ›λž˜ μƒμœ„ μ‹œλ¦¬μ¦ˆ
  • valueRelative 이 λ…Έλ“œλ₯Ό 기반으둜 ν•˜λŠ” 숫자 λ°±λΆ„μœ¨ κ°’ λŒ€ μ΅œμƒμœ„ μˆ˜μ€€ 합계
  • color 이 μƒνƒœμ—μ„œ 이 λ…Έλ“œμ˜ 색상
  • λ³΄μ΄λŠ” λ…Έλ“œκ°€ λ³΄μ΄λŠ” 경우
  • λ…Έλ“œκ°€ ν˜„μž¬ 선택 λ˜μ–΄ μžˆλŠ” 경우
  • λ²”λ‘€ λ³΄μ΄λŠ” λ…Έλ“œμ—λ§Œ 주어진 ν˜„μž¬ 길이(λ°±λΆ„μœ¨)
type DtStackedBarChartValueDisplayMode = 'none' | 'absolute' | 'percent';
type DtStackedBarChartElementPosition =
  | 'none'
  | 'top'
  | 'right'
  | 'bottom'
  | 'left';
type DtStackedBarChartFillMode = 'full' | 'relative';
type DtStackedBarChartDirection = 'horizontal' | 'vertical';

그림 물감

  • 3 μ΄ν•˜μΈ 경우 ν…Œλ§ˆλ₯Ό 따라야 함
  • 3개 이상인 경우 일반 차트 νŒ”λ ˆνŠΈλ₯Ό 따라야 함
  • μ‚¬μš©μžκ°€ ν•˜λ‚˜λ₯Ό ν‘œμ‹œν•˜λ©΄ 색상이 λ¬΄μ‹œλ©λ‹ˆλ‹€.
  • μ„ νƒν•œ μ„Έκ·Έλ¨ΌνŠΈμ—λŠ” 청둝색 후광이 ν‘œμ‹œλ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

μ „μ„€

  • 곡톡 글머리 기호λ₯Ό ν‘œμ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • λ ˆμ΄λΈ”κ³Ό 값을 ν‘œμ‹œν•΄μ•Ό 함(ν•˜λ‚˜μ˜ μ‹œλ¦¬μ¦ˆλ§Œ μžˆλŠ” 경우)
  • 클릭 μ‹œ ν•΄λ‹Ή λ ˆμ΄λΈ”μ— ν•΄λ‹Ήν•˜λŠ” λ…Έλ“œλ₯Ό μˆ¨κ²¨μ•Ό ν•©λ‹ˆλ‹€.
  • λ§ˆμ§€λ§‰μœΌλ‘œ λ³΄μ΄λŠ” λ…Έλ“œλŠ” 숨길 수 μ—†μŠ΅λ‹ˆλ‹€
  • 외뢀에 μžˆμ„ 수 있으며 μš”μ†Œλ₯Ό ν† κΈ€ν•  수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @subarrocaμž…λ‹ˆλ‹€!
이것은 λ§‰λŒ€ 차트λ₯Ό ν™•μž₯ν•˜κΈ° μœ„ν•œ 큰 λ…Έλ ₯μž…λ‹ˆλ‹€. κ³ λ €ν•΄μ•Ό ν•  λͺ‡ 가지 사항:

κ°€λ‘œ λ§‰λŒ€ν˜•/μ„Έλ‘œ λ§‰λŒ€ν˜• 차트 및 μ„Έλ‘œ λ§‰λŒ€ν˜• 차트
μ°¨νŠΈμ—μ„œ μ„Έλ‘œ λ§‰λŒ€ μ°¨νŠΈλŠ” 일반적으둜 μ„Έλ‘œ λ§‰λŒ€ν˜• 차트라고 ν•©λ‹ˆλ‹€. 이 ν‘œμ€€μ—μ„œ λ²—μ–΄λ‚˜κ³  싢은지 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. dt-stacked-column-chart 및 dt-stacked-bar-chart 두 ꡬ성 μš”μ†Œλ₯Ό λ§Œλ“€κΈ°λ‘œ μ„ νƒν•˜κ³  κΈ°λ³Έ 클래슀(예: DtStackedBarColumnChartBase )λ₯Ό 톡해 λŒ€λΆ€λΆ„μ˜ λ‚΄λΆ€ 논리λ₯Ό κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ„ νƒμž
ꡬ성 μš”μ†Œκ°€ 무엇을 λ‚˜νƒ€λ‚Ό 것인지 λͺ…ν™•ν•˜κ²Œ ν•˜κΈ° μœ„ν•΄ 선택기 내에 "차트"λΌλŠ” 단어λ₯Ό ν¬ν•¨ν•˜μ‹­μ‹œμ˜€.

λ°©ν–₯ μž…λ ₯
두 ꡬ성 μš”μ†Œλ‘œ λ‚˜λˆ„λ©΄ 더 이상 ν•„μš”ν•˜μ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€.

λ ˆμ΄λΈ” μœ„μΉ˜: DtStackedBarChartElementPosition
두 가지 λͺ¨λ‘μ— μ ν•©ν•˜κ³  μ„Έλ‘œ λ§‰λŒ€ν˜• 및 λ§‰λŒ€ν˜• μ°¨νŠΈμ— λ™μΌν•˜κ²Œ μ μš©ν•  수 μžˆλŠ” μœ ν˜•μ„ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€. μ™Όμͺ½/였λ₯Έμͺ½μ€ μ„Έλ‘œ λ§‰λŒ€ν˜• μ°¨νŠΈμ—μ„œ μ˜λ―Έκ°€ μ—†κ³  μœ„μͺ½/μ•„λž˜μͺ½ λ§‰λŒ€ μ°¨νŠΈμ—μ„œλŠ” μ˜λ―Έκ°€ μ—†μœΌλ―€λ‘œ start | end 와 같이 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ²”λ‘€ μœ„μΉ˜: DtStackedBarChartElementPosition
ν˜„μž¬ μˆ˜μ€€μ—μ„œ 이것을 μ œκ±°ν•˜κ³  범둀에 λŒ€ν•œ κ³ μ • μœ„μΉ˜λ₯Ό μ œκ³΅ν•˜κΈ°λ‘œ μ„ νƒν•©λ‹ˆλ‹€. ν˜„μž¬λ‘œμ„œλŠ” μ§μœ„λ₯Ό μ •μ˜ν•  수 μžˆλŠ” μ΄μ μ΄λ‚˜ μ‚¬μš© 사둀가 μ—†μŠ΅λ‹ˆλ‹€. ν˜„μž¬λ‘œμ„œλŠ” λ§‰λŒ€/μ—΄ μ°¨νŠΈμ— λŒ€ν•œ λͺ¨λ“  λ²”λ‘€κ°€ 차트 μ•„λž˜μ— μžˆμŠ΅λ‹ˆλ‹€.

maxBarSize: 숫자
λ‚˜λŠ” 이것이 단일 컬럼/λ°”μ˜ maxWidthλ₯Ό μ°Έμ‘°ν•œλ‹€κ³  μΆ”μΈ‘ν•©λ‹ˆλ‹€. μ•„λ§ˆλ„ maxTrackSize 와 같은 λ‹€λ₯Έ μ΄λ¦„μœΌλ‘œ 컬럼과 λ°” 간에 이것을 κ³΅μœ ν•˜λŠ” 방법을 찾을 수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

μ•žμœΌλ‘œ κ³ λ €ν•΄μ•Ό ν•  사항

API μ œμ•ˆμ—λŠ” μΆ•, μΆ• λ ˆμ΄λΈ”, 눈금 및 크기에 λŒ€ν•œ λ‚΄μš©μ΄ ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜μ€‘μ— μΆ”κ°€ λ‹¨κ³„μ—μ„œ κ·Έλ ‡κ²Œ ν•  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

κ³ λ € 사항

이것은 맀우 큰 ꡬ성 μš”μ†Œμ²˜λŸΌ 보이기 λ•Œλ¬Έμ— 이것을 λΆ„ν• ν•˜κ³  μ‹œμž‘ν•˜κΈ° μœ„ν•΄ μ΅œμ†Œ μ‹€ν–‰ κ°€λŠ₯ν•œ μ œν’ˆμ„ μ •μ˜ν•˜λŠ” 것이 κ°€λŠ₯ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ κ½€ 였랜 μ‹œκ°„μ΄ κ±Έλ¦½λ‹ˆλ‹€. @ffriedl89 @subarroca 에 λŒ€ν•΄ μ–΄λ–»κ²Œ μƒκ°ν•˜μ„Έμš”?

μ•ˆλ…•!

μš°μ„  μ œκ°€ μ œμ•ˆν•œ λͺ¨λ“  것은 이미 μ™„λ£Œλ˜μ—ˆμœΌλ―€λ‘œ ν…ŒμŠ€νŠΈλ₯Ό μ œμ™Έν•˜κ³ λŠ” 이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 데 λ§Žμ€ μ‹œκ°„μ΄ μ†Œμš”λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ„ νƒμž
이미 이름에 '차트'κ°€ μžˆμ§€λ§Œ μ—¬κΈ°μ—μ„œ μžŠμ–΄ λ²„λ ΈμŠ΅λ‹ˆλ‹€. κ·Έλž˜λ„ μ•Œμ•„ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

λ§‰λŒ€ / μ„Έλ‘œ λ§‰λŒ€ν˜• 차트 정보
사싀 ν•˜λ‚˜μ˜ 단일 ν…œν”Œλ¦Ώκ³Ό κ·Έλ¦¬λ“œ λ ˆμ΄μ•„μ›ƒ 및 μš”μ†Œ μœ„μΉ˜ 지정을 μ‚¬μš©ν•˜μ—¬ ν•˜λ‚˜μ˜ ꡬ성 μš”μ†Œμ—μ„œ 이미 μˆ˜ν–‰λ˜μ—ˆμœΌλ―€λ‘œ λ³„λ„μ˜ ꡬ성 μš”μ†Œ μ ‘κ·Ό 방식을 μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. direction 이름을 type: 'bar' | 'column' 둜 λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

라벨 μœ„μΉ˜
UX에 λͺ‡ 가지 μ‹œλ„λ₯Ό 보여쀄 λ•Œ λ ˆμ΄λΈ”μ΄ λ§‰λŒ€ 차트의 μ™Όμͺ½μ— 갈 수 μžˆλ‹€κ³  μ œμ•ˆ ν–ˆμœΌλ―€λ‘œ μœ„, μ•„λž˜ 및 μ™Όμͺ½μ΄ μžˆμ—ˆκ³  였λ₯Έμͺ½μ€ 그림을 μ™„μ„±ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ˜€μ§€λ§Œ 그닀지 μœ μš©ν•˜μ§€λŠ” μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€. λ‚˜λŠ” μš°λ¦¬κ°€ 쒌우λ₯Ό 없앨 수 μžˆλŠ”μ§€ μ•Œμ•„λ³΄κΈ° μœ„ν•΄ κ·Έλ“€κ³Ό 이야기할 것이닀.

λ ˆμ „λ“œ ν¬μ§€μ…˜
μ‰½κ²Œ 제거 κ°€λŠ₯

μ΅œλŒ€ λ§‰λŒ€ 크기
그것은 당신이 μ„€λͺ…ν•œ 것과 μ •ν™•νžˆ κ°™μŠ΅λ‹ˆλ‹€. 이름을 bar|column 둜 λ³€κ²½ν•˜λ©΄ μ œμ•ˆν•œ λŒ€λ‘œ 이름을 λ°”κΎΈλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

쀑심선
μ„Έλ‘œ λ§‰λŒ€ν˜• μ°¨νŠΈμ— μ‚¬μš©ν•  xμΆ• 선이 μžˆμŠ΅λ‹ˆλ‹€. μ–΄λ–»κ²Œλ“  'valueAxis'λ₯Ό μΆ”κ°€ν•΄μ•Ό ν•œλ‹€κ³  μƒκ°ν–ˆμ§€λ§Œ λ‹€μŒ λ‹¨κ³„μ—μ„œλŠ” 이것이 μ›λž˜μ˜ ν•œκ³„λ₯Ό 훨씬 λ„˜μ–΄μ„°κ³  μ‰½κ²Œ μΆ”κ°€ν•  수 μžˆλŠ” κ°œμ„  사항이 될 것이라고 μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€.

#988에 μ˜ν•΄ 폐쇄

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰