<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 線形圖 線形圖是最基礎的圖形,其實現類為`WxLiner`。WxLiner支持基礎線形圖,區域線形圖等幾種繪圖展示形式。 ## <span id="init">簡單實例</span> 如果要使用線形圖,則需要引用 `WxLiner` 并初始化一個圖形庫。在[基礎](base.md)章節,我們了解到所有的圖形,首個參數為圖形所使用的的Canvas畫布的id(或微信小程序中的canvas-id)或者HTMLElement節點。第二個參數為圖形實例的詳細設置項。 讓我們做一個最簡單的例子: ![](https://box.kancloud.cn/5319fd58d27b88b5ac3e30fa74a5dad3_1423x805.png) ```js import { WxLiner } from 'wx-chart'; let wxLiner = new WxLiner('myCanvas', { width: 700, height: 400, title: '北京分公司業務銷量趨勢圖', yScaleOptions: { position: 'left', title: '人民幣(萬)' }, legends:[{ text: '銷售額' }] }); wxLiner.update([{ value: 1, label: '一月' }, { value: 40, label: '二月' }, { value: 35, label: '三月' }, { value: 56, label: '四月' }, { value: 71, label: '五月' }]); ``` 在上面的例子中,我們繪制了一個最簡單的線形圖,描述了某公司近5個月的總銷售額。可以看到,線性圖的設置都比較易懂。 唯一值得注意的有兩點。第一,由于我們沒有設置線狀圖的顏色,所以系統會自動分配一個顏色;其二,如果感覺一條曲線沒有必要畫圖例的話,你可以在圖形中增加以下配置: ```js legendOptions:{ display: false } ``` 但是,**必須**保留`legends`的配置,該配置用于唯一標識圖形的每根線。 ## <span id="init">多圖例</span> 當需要繪制多個線條時,你只需要基于上面的例子,多增加幾項配置;一是在`legends`增加你新增的線條標識,二是在數據中根據你的標識增加相應的值。 讓我們看一個稍微復雜一點的多線條圖的實例 ![](https://box.kancloud.cn/7c53c36ab0b563643003dd9e12488ba5_1441x817.png) ```js import { WxLiner } from 'wx-chart'; let wxLiner = new WxLiner('myCanvas', { width: 700, height: 400, title: '北京-上海分公司業務銷量對比', yScaleOptions: { position: 'left', title: '人民幣(萬)' }, legends:[{ text: '北京', key: 'bj', fillStyle: '#3385ff', strokeStyle: '#3385ff' }, { text: '上海', key: 'sh', }] }); wxLiner.update([{ bj: 10, sh: 20, label: '一月' }, { bj: 40, sh: 115, label: '二月' }, { bj: 35, sh: 34.5, label: '三月' }, { bj: 56, sh: 22, label: '四月' }, { bj: 71, sh: 56, label: '五月' }]); ``` 上面的多線條實例中,我們可以看出,我們在`legends`設置中定義了“北京”與“上海”兩個線條圖例,并且還單獨設置了北京的圖例顏色(簡單學習過Canvas的同學應該了解,fillStyle為填充顏色,strokeStyle為線條顏色); 需要注意的是我們的更新的數據,我們的數據并不像單線條那樣使用默認的key值: `value` ,來代表數值,而是在`legends`設置中自定義了key值:`bj` 和 `sh`。 ## <span id="init">應對數據缺失</span> 在我們繪制復雜線形圖時,有可能會有某一個節點數據缺失。一般來說,我們會有兩種方法來應對:斷開曲線 或者 假裝補齊。 WxLine通過`spanGaps`來支持這兩種方式,默認的`spanGaps`的值為`false`,即斷開曲線。我們來看下兩者的差別。 ![](https://box.kancloud.cn/b332f1dff1cd668f9bf4afb40548f036_1424x815.png =500x280) ```js let wxLiner = new WxLiner('myCanvas', { ... legends:[{ text: '北京', key: 'bj', fillStyle: '#3385ff', strokeStyle: '#3385ff' }, { text: '上海', key: 'sh', // spanGaps : false //默認的 }] }); ``` ![](https://box.kancloud.cn/472b68b4b339696313096b6c3007c0ff_1439x813.png =500x280) ```js let wxLiner = new WxLiner('myCanvas', { ... legends:[{ text: '北京', key: 'bj', fillStyle: '#3385ff', strokeStyle: '#3385ff' }, { text: '上海', key: 'sh', spanGaps : true }] }); ``` ## <span id="init">起始點?</span> 上面的例子中,你會發現我們的X軸起始點不在頂點,有時候感覺這很變扭。我們可以通過在圖形中增加 ```js crossScaleOptions: { xFirstPointSpace: 0 } ``` 這項設置來將起始點變為頂點。(注:這其實是[區域組件-交叉軸](component.md#crossScale)中的一個設置項) ## <span id="fillArea">填充線形圖</span> 為了讓我的圖形變的更好看,我們可以在`legends`設置`fillArea`屬性,這個屬性會用顏色填充X軸與線圖之間的空隙。像下圖所示: ![](https://box.kancloud.cn/9a4e370079d0f2a77bbb0ffd5f9444dc_1454x811.png) ```js let wxLiner = new WxLiner('myCanvas', { width: 700, height: 400, title: '北京-上海分公司業務銷量對比', crossScaleOptions: { 'xFirstPointSpace': 0 }, yScaleOptions: { position: 'left', title: '人民幣(萬)' }, legends:[{ text: '北京', key: 'bj', fillStyle: '#3385ff', strokeStyle: '#3385ff', fillArea: true }, { text: '上海', key: 'sh', fillArea: true }] }); ``` ## <span id="stacked">堆棧線形圖</span> 像其他圖形庫一樣,wxChart也支持堆棧式線圖形。在圖形中設置 `stacked:true` 即得到一個線性的堆棧圖形。如下所示: ![](https://box.kancloud.cn/0f72a23b82f314b47a56d2e8f146e54c_1423x819.png) 需要注意的是,堆棧圖是在 0 屆兩端分別累加的,例如上圖第一點數據為: ```js { bj: -20, sh: 20, label: '一月' } ``` 你會發現一月的的數值累加為0(20 + (-20) = 0),但是棧式圖形描繪了0界上下各兩個點。這與[柱狀圖](bar.md)中的堆棧式圖邏輯保持一致。 在某些需求中,你需要**去除負值**(例如:上圖中北京銷售量值為負明顯就是錯誤數據)。你可以設置`discardNeg: true`來在繪制堆棧式圖時使負值歸零。 ## <span id="smooth">線形圖平滑</span> 默認的,線形圖兩點之間會進行平滑處理,原理可參見Rob Spencer, 2010的文章[Spline Interpolation](http://scaledinnovation.com/analytics/splines/aboutSplines.html)。如果需要關閉平滑處理,你需要將每一個`legend`中的`tension`值設置為0。 ![](https://box.kancloud.cn/088355bce835272cb8abbd8b53d2f2b5_1386x810.png) ```js let wxLiner = new WxLiner('myCanvas', { ..., legends:[{ text: '北京', key: 'bj', fillArea: true, tension: 0 }, { text: '上海', key: 'sh', fillArea: true }] }); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看