<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      什么是G2?
      G2是一個簡介的漸進式語法,主要用于制作網頁的可視化。它提供了一套函數風格式、聲明形式的API和組件化的編程范式,希望幫助用戶快速完成報表搭建、數據探索、可視化等多樣的需求
      G2的核心概念:

      標記(Mark):繪制數據驅動的圖形

      轉換(Transform):派生數據

      比例尺(Scale):將抽象的數據映射為視圖數據

      坐標系(Coordinate):對空間通道應用點變換

      視圖復合(Composition):管理和增強視圖

      動畫(Animation):數據驅動的動畫和連續的形變動畫

      交互(Iteraction):操作視圖并且展示詳細信息

      為什么選G2?和echart對比
      設計理念:

      G2:基于圖形語法,注重數據對圖形的微觀控制和自由映射,設計出發點是圖形
      Echart:基于圖標類型,提供圖表中數據相關的圖形映射配置,設計出發點是圖表

      使用場景:

      G2: 更適合需要高度定制和靈活控制圖形展示的場景,可以創建非常用的圖表類型。

      Echart:更適合快速展示常規圖標信息,封裝好難點,配置數據即可使用

      Mark 繪制數據驅動的圖形

      • interval - 通常用來繪制柱、條形圖,餅圖等相關圖表。
      • point - 主要用于繪制散點圖,利用點的粒度來分析數據的分布情況。
      • line - 根據一系列的點,繪制折線,通常用來繪制折線圖。
      • area - 通常用來繪制我們常見的面積圖,通過填充,可以更好突出趨勢堆積信息。
      • cell - 根據 x, y 將空間劃分成一個子空間,然后進行可視化繪制,常見于一些方塊圖,如日歷圖、聚合熱力圖等。
      • rect - 使用兩組 x,兩組 y 來定位一個矩形區域,常用于直方圖、矩陣樹圖等。
      • link - 標記使用兩個用 (x, y) 定位的點,繪制一條帶方向的直線。通過指定 xy 通道為長度為 2 的字段數組即可。
      • vector - 用 startend 兩個點來表示一個向量,通常用于繪制具備向量含義的數據,比如風向量場等。
      • box - 用來繪制箱線圖,通常用來展示一組數據分布情況的統計圖。
      • boxplot - 用來繪制箱線圖,并且內置數據的聚合操作。
      • text - 通過指定文本的樣式通道,可以在畫布上繪制和數據綁定的文本字符。
      • image - 利用 src 通道在畫布上繪制圖片。
      • shape - 使用自定義函數靈活繪制自定義圖形。
      • lineX - 指定 x 通道來繪制垂直于 x 軸的輔助線,常用于繪制平均值或其他聚合數據輔助線。
      • lineY - 指定 y 通道來繪制垂直于 y 軸的輔助線,常用于繪制平均值或其他聚合數據輔助線。
      • range - 使用一組 x(x1, x2) 和一組 y(y1, y2) 來定位一個矩形區域,常用于繪制高亮指定區域的輔助區域。
      • rangeX - 使用一組 x(x1, x2) 來定位一個垂直于 x 軸的矩形區域,常用于繪制高亮指定區域的輔助區域。
      • rangeY - 使用一組 y(y1, y2) 來定位一個垂直于 y 軸的矩形區域,常用于繪制高亮指定區域的輔助區域。
      • polygon - 利用多組 (x, y) 數據點,在畫布中繪制閉合的多邊形,通常結合一些社區布局算法使用。
      • wordCloud - 繪制詞云圖。
      • density - 渲染核密度數據,多用于小提琴圖。
      • heatmap - 接受熱力數據,多用于繪制熱力圖。

      創建可視

      new Chart       創建Chart實例        antV G2中的autoFit屬性是指圖表是否自適應容器寬高。
      chart.interval   添加interval圖形
      interval
      通常用來繪制柱狀圖、條形圖、餅圖等,通過坐標系、坐標尺、數據Transform等的變化,可以產生多種多樣的可視化表現樣式,是圖形語法中,常見的Mark

      import { Chart } from '@antv/g2';
      
      const data = [
        { letter: 'A', frequency: 0.08167 },
        { letter: 'B', frequency: 0.01492 },
      ];
      const chart = new Chart({
        container: 'container',
        autoFit: true,
      });
      
      chart.interval().data(data)
      .encode('x', 'letter')
      .encode('y', 'frequency')
      .encode('color', 'red')
      .style('fillOpacity', 0.6);
      chart.render();
      View Code
        .style('maxWidth', 600);  屬性修改
       .style({
          'minWidth': 50,
          'fillOpacity': 1
        })

       .encode('shape', 'hollow')    即可實現空心矩形

       .encode('color', 'country')  //設置顏色

      Coordinate -坐標系

      chart
        .interval()
        .coordinate({ transform: [{ type: 'transpose' }] }) //設置類型
        .data(data)
        .encode('x', 'year')
        .encode('y', 'sales');
      View Code
      chart..coordinate({ transform: [{ type: 'transpose' }] })
      type有多種類型
      type: 'fisheye'   //魚眼坐標系變換對輸入的維度應用笛卡爾魚眼效果。
      type: 'parallel'   //Parallel 是平行坐標系變換,將笛卡爾直角坐標系坐標變換為平行坐標系下的坐標。
      type: 'polar'   //Polar 是極坐標系變換,將笛卡爾直角坐標系坐標變換為極坐標系下的坐標,常用于玫瑰圖和柱狀圖之間的轉換。
      type: 'transpose'  Transpose 是坐標系的轉置變換,將 (x, y) 變換成 (y, x),常用于條形圖和柱狀圖之間的轉換。  (常用)
      等等
      Scale -比例尺
      將抽象的數據映射為視覺數據。
      • band - 特殊的 ordinal 比例尺,它的值域范圍是一個連續的范圍。
      • linear - 針對連續數據,對數據進行連續映射的比例尺。
      • sqrt - 指數固定為 0.5 的 pow 比例尺。
      • pow - 類似于 linear 比例尺,但是映射函數為指數函數(exponential)。
      • log - 類似于 linear 比例尺,但是映射函數為對數函數(logarithmic)。
      • ordinal - 將離散的數據映射到另外一個離散數據中。
      • point - 特殊 band 比例尺,固定配置 bandWith = 0
      • quantize - 類似于 threshold,但是計算切片的方式是基于元素的數據值。
      • quantile - 類似于 threshold, 但是計算切片的方式是基于元素在數據中的索引。
      • threshold - 將連續的值域范圍劃分為多個切片,并將這些切片映射到一個離散的數據中。
      • time - 特殊的 linear 比例尺,它的值域是一組有時間順序的數據

      Transform - 變換

      • bin - 對連續的 x 和 連續的 y 通道進行分箱,并且對通道根據指定的 reducer 進行聚合。
      • binX - 對 x 通道進行分箱,如果希望對 y 通道進行分箱,使用 binX + transpose 坐標系。
      • diffY - 對 y 和 y1 通道求差集。
      • dodgeX - 生成 series 通道值為 color 通道的值,根據 series 通道實現分組效果。
      • flexX - 根據指定通道設置 x 比例尺的 flex 屬性,實現不等寬矩形的效果。
      • group - 對離散的 x 和 連續的 y 通道進行分組,并且對通道根據指定的 Reducer 進行聚合。
      • groupColor - 對離散的 color 通道進行分組,并且對通道根據指定的 Reducer 進行聚合。
      • groupX - 對離散的 x 通道進行分組,并且對通道根據指定的 Reducer 進行聚合。
      • groupY - 對離散的 y 通道進行分組,并且對通道根據指定的 Reducer 進行聚合。
      • jitter - 根據離散的 x 和 離散的 y 比例尺,生成 dy 和 dx 通道,實現在某個區域散開的效果。
      • jitterX - 根據離散的 x 比例尺,生成 dx 通道,實現在某個區域的 x 方向散開的效果。
      • jitterY - 根據離散的 y 比例尺,生成 dy 通道,實現在某個區域的 y 方向散開的效果。
      • normalizeY - 對 y 和 y1 通道根據指定的 basis 進行歸一化處理。
      • select - 按照指定通道進行分組,根據指定通道和 selector 從每組選擇出數據。
      • selectX - 按照指定通道進行分組,根據 x 通道和 selector 從每組選擇出數據。
      • selectY - 按照指定的通道進行分組,根據 y 通道和 selector 從每組選擇出數據。
      • pack - 生成 transform 和 scale 屬性,從而讓圖形在空間中緊湊排列。
      • sample - 當數據量遠大于屏幕像素的時候,開啟一些內置的采樣策略,提升圖表繪制性能。
      • sortColor - 對離散的 color 比例尺的定義域根據指定通道排序。
      • sortX - 對離散的 x 比例尺的定義域根據指定通道排序。
      • sortY - 對離散的 y 比例尺的定義域根據指定通道排序。
      • stackEnter - 對 enterDuration 和 enterDelay 通道進行堆疊,實現分組動畫的效果。
      • stackY - 按照指定通道分組,對每組的 y 和 y1 通道進行堆疊,實現堆疊效果。
      • symmetryY - 按照指定通道分組,給每組的 y 和 y1 通道添加偏移,實現對稱效果。

      Interaction - 交互 操作視圖并且展現詳細信息。

      .tooltip((d) => ({ value: d.people, name: d.sex === 1 ? 'Male' : 'Female' }));   

      修改提示名稱

      Component - 組件  繪制輔助視覺元素。

      • title - 繪制圖表標題和副標題。
      • axis - 繪制坐標軸。
      • legend - 繪制圖例。
      • scrollbar - 繪制滾動條。
      • slider - 繪制拖動條。
      axis: {
            y: {
              // Title
              title: 'Frequency',
              titleSpacing: 30,
              titleFill: 'steelblue',
      
              // Line
              line: true,
              arrow: true,
              lineArrowOffset: 10,
              lineArrowSize: 30,
              lineLineWidth: 10,
      
              // Tick
              tickLength: 20,
              tickFilter: (_, i) => i % 3 !== 0,
      
              // Label
              labelFormatter: '.0%',
      
              // Grid
              gridLineDash: null,
              gridStroke: 'red',
              gridStrokeWidth: 5,
              gridAreaFill: '#eee',
            },
            x: {
              title: 'Letter',
              labelFormatter: (d) => d.repeat(3),
              labelFontSize: 30,
              labelSpacing: 30,
            },
          },
      View Code
      chart.axis('y', { labelFormatter: '.0%' })   把y軸0.06 換成6%
      chart.axis('x', {
          labelSpacing: 4,
          labelTransform: 'rotate(90)',
        })  //將x軸名稱旋轉90度

      chart.axis('y', { labelFormatter: '~s' });   //6個0置換成M

      chart.legend('color', { labelFormatter: (d) => (d === 1 ? 'Male' : 'Female') })    

       chart.title('This is the title of chart.');

       

      // 開啟 X 軸方向上的滾動條
      .scrollbar('x', {});
       
      // 開啟 Y 方向縮略軸
      .slider('y', {});

       

      chart.state('selected', { fill: '#1783FF', stroke: 'black', strokeWidth: 1 })
      chart.state('unselected', { fill: '#ccc' })
      .interaction('elementSelect'); // 設置高亮交互;
      這3配合使用
      設置選中和不選中

       Label 繪制數據標簽和標簽屬性的變換

      • contrastReverse - 標簽顏色在圖形背景上對比度低的情況下,從指定色板選擇一個對比度最優的顏色。
      • overflowHide - 對于標簽在圖形上放置不下的時候,隱藏標簽。
      • overlapDodgeY - 對位置碰撞的標簽在 y 方向上進行調整,防止標簽重疊。
      • overlapHide - 對位置碰撞的標簽進行隱藏,默認保留前一個,隱藏后一個。
      chart.label({
          text: 'frequency',
          formatter: '.1%',
          textAlign: (d) => (+d.frequency > 0.008 ? 'right' : 'start'),
          fill: (d) => (+d.frequency > 0.008 ? '#fff' : '#000'),
          dx: (d) => (+d.frequency > 0.008 ? -5 : 5),
        });

       area

      目前 area 有以下幾個內置 shape 圖形,默認為 area

      圖形描述示例
      area 繪制直線連接的面積圖  
      smooth 繪制平滑曲線的面積圖  
      vh 繪制階梯面積圖,先豎線后橫線連接  
      hv 繪制階梯面積圖,先橫線后豎線連接  
      hvh 繪制階梯面積圖,豎橫豎,中點連接

      chart.area()

      Animation -動畫 數據驅動的動畫和連續的形變動畫。

       提供了三種動畫場景類型

      • enter - 元素第一次出現的出場動畫;
      • update - 數據更新的時候,元素更新的動畫;
      • exit - 數據更新的時候,元素被銷毀退出畫布的動畫;
      chart.interval().animate('enter', { type: 'fadeIn' });
      • fadeIn - 漸現動畫。
      • fadeOut - 漸隱動畫。
      • growInX - 容器沿著 x 方向放大的矩陣動畫,多用于 G.Group 容器類進行動畫。
      • growInY - 容器沿著 y 方向放大的矩陣動畫,多用于 G.Group 容器類進行動畫。
      • morphing - 圖形之間的形變動畫。
      • pathIn - Path 路徑入場動畫。
      • scaleInX - 單個圖形沿著 x 方向的生長動畫。
      • scaleInY - 單個圖形沿著 y 方向的生長動畫。
      • scaleOutX - 單個圖形沿著 x 方向的消退動畫。
      • scaleOutY - 單個圖形沿著 y 方向的消退動畫。
      • waveIn - 劃入入場動畫效果,不同坐標系下效果不同。
      • zoomIn - 沿著圖形中心點的放大動畫。
      • zoomOut - 沿著圖形中心點的縮小動畫。

      關鍵幀動畫

      上面的動畫都是過渡動畫,不涉及到數據的更新,G2 也提供了制作關鍵幀動畫的能力。使用 chart.timingKeyframe 創建一個時間容器,用于放置一系列視圖,它會對這些視圖中有關系的圖形元素應用平滑的過渡效果。而對應關系通過 key 和 groupKey 兩個通道指定。

       

       

      參考:interval | G2

      posted on 2024-10-31 10:36  執候  閱讀(377)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲一区二区偷拍精品| 无码人妻出轨黑人中文字幕| 狠狠色噜噜狠狠狠狠av不卡| 无码人妻丰满熟妇区毛片18| 无码人妻精品一区二区三区下载| 久久精品免视看国产成人| 亚洲天堂久久一区av| 婷婷四虎东京热无码群交双飞视频 | 欧美性色黄大片| 久久自己只精产国品| 九九在线精品国产| 男女性高爱潮免费网站| 亚洲激情在线一区二区三区| 亚洲日韩av在线观看| 国产亚洲av日韩精品熟女| 亚洲中文字幕无码中字| 4hu亚洲人成人无码网www电影首页| 97人人添人澡人人爽超碰| 日本免费人成视频在线观看| 国产不卡精品一区二区三区| 国产AV影片麻豆精品传媒| 久久精品国产久精国产| 亚洲无线看天堂av| 97午夜理论电影影院| 亚洲AV无码国产永久播放蜜芽 | 国产免费爽爽视频| 麻豆国产va免费精品高清在线| 国产精品人妻| 亚洲日本韩国欧美云霸高清| 蜜臀久久99精品久久久久久| 粉嫩国产av一区二区三区| 四虎永久精品免费视频| 男人的天堂av社区在线| 日本中文字幕不卡在线一区二区| 在线视频观看| 久久亚洲国产精品久久| 亚洲一区二区国产av| 97久久久精品综合88久久| 天堂V亚洲国产V第一次| 国产精品自在线拍国产手机版| 97在线视频人妻无码|