數(shù)據(jù)圖表庫:ECharts


官網(wǎng):https://www.echartsjs.com/zh/index.html
GitHub:https://github.com/apache/incubator-echarts

特性介紹

百度的ECharts目前在國內(nèi)使用的比較多,ECharts一個(gè)純 Javascript的圖表庫工三,可以流暢的運(yùn)行在 PC 和移動(dòng)設(shè)備上澎灸,兼容當(dāng)前絕大部分瀏覽器(IE8/9/10/11夫啊,Chrome,F(xiàn)irefox钟鸵,Safari等)钉稍,底層依賴輕量級(jí)的Canvas類庫ZRender,提供直觀棺耍,生動(dòng)贡未,可交互,可高度個(gè)性化定制的數(shù)據(jù)可視化圖表蒙袍。
ECharts 3中更是加入了更多豐富的交互功能以及更多的可視化效果俊卤,并且對(duì)移動(dòng)端做了深度的優(yōu)化。

獲取 ECharts

你可以通過以下幾種方式獲取 ECharts害幅。

  1. 官網(wǎng)下載界面選擇你需要的版本下載消恍,根據(jù)開發(fā)者功能和體積上的需求,我們提供了不同打包的下載以现,如果你在體積上沒有要求狠怨,可以直接下載完整版本。開發(fā)環(huán)境建議下載源代碼版本邑遏,包含了常見的錯(cuò)誤提示和警告佣赖。

  2. 在 ECharts 的 GitHub 上下載最新的 release 版本,解壓出來的文件夾里的 dist 目錄里可以找到最新版本的 echarts 庫记盒。

  3. 通過 npm 獲取 echarts憎蛤,npm install echarts --save,詳見“在 webpack 中使用 echarts

  4. cdn 引入纪吮,你可以在 cdnjs俩檬,npmcdn 或者國內(nèi)的 bootcdn 上找到 ECharts 的最新版本栏豺。

引入 ECharts

ECharts 3 開始不再強(qiáng)制使用 AMD 的方式按需引入,代碼里也不再內(nèi)置 AMD加載器豆胸。因此引入方式簡單了很多,只需要像普通的JavaScript庫一樣用script標(biāo)簽引入巷疼。

<!DOCTYPE html>
<html>
<header>
  <meta charset="utf-8">
  <!-- 引入 ECharts 文件 -->
  <script src="echarts.min.js"></script>
</header>
</html>

繪制一個(gè)簡單的圖表

在繪圖前我們需要為 ECharts 準(zhǔn)備一個(gè)具備高寬的 DOM 容器晚胡。

<body>
  <!-- 為 ECharts 準(zhǔn)備一個(gè)具備大小(寬高)的 DOM -->
  <div id="main" style="width: 600px;height:400px;"></div>
</body>

然后就可以通過 echarts.init 方法初始化一個(gè) echarts 實(shí)例并通過 setOption 方法生成一個(gè)簡單的柱狀圖嚼沿,下面是完整代碼估盘。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>ECharts</title>
  <!-- 引入 echarts.js -->
  <script src="echarts.min.js"></script>
</head>
<body>
  <!-- 為ECharts準(zhǔn)備一個(gè)具備大小(寬高)的Dom -->
  <div id="main" style="width: 600px;height:400px;"></div>
  <script type="text/javascript">
    // 基于準(zhǔn)備好的dom骡尽,初始化echarts實(shí)例
    var myChart = echarts.init(document.getElementById('main'));
    // 指定圖表的配置項(xiàng)和數(shù)據(jù)
    var option = {
      title: {
        text: 'ECharts 入門示例'
      },
      tooltip: {},
      legend: {
        data:['銷量']
      },
      xAxis: {
        data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
      },
      yAxis: {},
      series: [{
        name: '銷量',
        type: 'bar',
        data: [5, 20, 36, 10, 10, 20]
      }]
    };
    // 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表遣妥。
    myChart.setOption(option);
  </script>
</body>
</html>

這樣你的第一個(gè)圖表就誕生了!

在 webpack 中使用 ECharts

Webpack 是目前比較流行的模塊打包工具攀细,你可以在使用webpack的項(xiàng)目中輕松的引入和打包ECharts箫踩,這里假設(shè)你已經(jīng)對(duì) webpack 具有一定的了解并且在自己的項(xiàng)目中使用。

npm 安裝 ECharts

3.1.1 版本之前 EChartsnpm 上的 package 是非官方維護(hù)的谭贪,從 3.1.1 開始由官方 EFE 維護(hù)npmEChartszrenderpackage境钟。

你可以使用如下命令通過 npm 安裝 ECharts

npm install echarts --save

引入 ECharts

通過 npm 上安裝的 EChartszrender會(huì)放在node_modules目錄下〖笫叮可以直接在項(xiàng)目代碼中 require('echarts') 得到ECharts慨削。

var echarts = require('echarts');

// 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
var myChart = echarts.init(document.getElementById('main'));

// 繪制圖表
myChart.setOption({
  title: { text: 'ECharts 入門示例' },
  tooltip: {},
  xAxis: {
    data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
  },
  yAxis: {},
  series: [{
    name: '銷量',
    type: 'bar',
    data: [5, 20, 36, 10, 10, 20]
  }]
});

按需引入 ECharts 圖表和組件

默認(rèn)使用 require('echarts') 得到的是已經(jīng)加載了所有圖表和組件的 ECharts 包套媚,因此體積會(huì)比較大缚态,如果在項(xiàng)目中對(duì)體積要求比較苛刻,也可以只按需引入需要的模塊堤瘤。

例如上面示例代碼中只用到了柱狀圖玫芦,提示框和標(biāo)題組件,因此在引入的時(shí)候也只需要引入這些模塊宙橱,可以有效的將打包后的體積從 400 多 KB 減小到 170 多 KB姨俩。

// 引入 ECharts 主模塊
var echarts = require('echarts/lib/echarts');
// 引入柱狀圖
require('echarts/lib/chart/bar');
// 引入提示框和標(biāo)題組件
require('echarts/lib/component/tooltip');
require('echarts/lib/component/title');

// 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
var myChart = echarts.init(document.getElementById('main'));
// 繪制圖表
myChart.setOption({
  title: { text: 'ECharts 入門示例' },
  tooltip: {},
  xAxis: {
    data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
  },
  yAxis: {},
  series: [{
    name: '銷量',
    type: 'bar',
    data: [5, 20, 36, 10, 10, 20]
  }]
});

對(duì)于另一個(gè)流行的模塊打包工具 browserify 也是同樣的用法师郑,這里就不贅述了环葵。

繪制南丁格爾圖

餅圖主要是通過扇形的弧度表現(xiàn)不同類目的數(shù)據(jù)在總和中的占比,它的數(shù)據(jù)格式比柱狀圖更簡單宝冕,只有一維的數(shù)值张遭,不需要給類目。因?yàn)椴辉谥苯亲鴺?biāo)系上地梨,所以也不需要xAxis菊卷,yAxis缔恳。

myChart.setOption({
  series : [{
    name: '訪問來源',
    type: 'pie',
    radius: '55%',
    data:[
      {value:400, name:'搜索引擎'},
      {value:335, name:'直接訪問'},
      {value:310, name:'郵件營銷'},
      {value:274, name:'聯(lián)盟廣告'},
      {value:235, name:'視頻廣告'}
    ]
  }]
})

異步數(shù)據(jù)加載和更新

異步加載

入門示例中的數(shù)據(jù)是在初始化后setOption中直接填入的,但是很多時(shí)候可能數(shù)據(jù)需要異步加載后再填入洁闰。ECharts 中實(shí)現(xiàn)異步數(shù)據(jù)的更新非常簡單歉甚,在圖表初始化后不管任何時(shí)候只要通過jQuery等工具異步獲取數(shù)據(jù)后通過 setOption 填入數(shù)據(jù)和配置項(xiàng)就行。

var myChart = echarts.init(document.getElementById('main'));

$.get('data.json').done(function (data) {
  myChart.setOption({
    title: {
      text: '異步數(shù)據(jù)加載示例'
    },
    tooltip: {},
    legend: {
      data:['銷量']
    },
    xAxis: {
      data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
    },
    yAxis: {},
    series: [{
      name: '銷量',
      type: 'bar',
      data: [5, 20, 36, 10, 10, 20]
    }]
  });
});
var myChart = echarts.init(document.getElementById('main'));
// 顯示標(biāo)題扑眉,圖例和空的坐標(biāo)軸
myChart.setOption({
  title: {
    text: '異步數(shù)據(jù)加載示例'
  },
  tooltip: {},
  legend: {
    data:['銷量']
  },
  xAxis: {
    data: []
  },
  yAxis: {},
  series: [{
    name: '銷量',
    type: 'bar',
    data: []
  }]
});

// 異步加載數(shù)據(jù)
$.get('data.json').done(function (data) {
  // 填入數(shù)據(jù)
  myChart.setOption({
    xAxis: {
      data: data.categories
    },
    series: [{
      // 根據(jù)名字對(duì)應(yīng)到相應(yīng)的系列
      name: '銷量',
      data: data.data
    }]
  });
});

ECharts 中在更新數(shù)據(jù)的時(shí)候需要通過name屬性對(duì)應(yīng)到相應(yīng)的系列纸泄,上面示例中如果name不存在也可以根據(jù)系列的順序正常更新,但是更多時(shí)候推薦更新數(shù)據(jù)的時(shí)候加上系列的name數(shù)據(jù)腰素。

loading 動(dòng)畫

如果數(shù)據(jù)加載時(shí)間較長聘裁,一個(gè)空的坐標(biāo)軸放在畫布上也會(huì)讓用戶覺得是不是產(chǎn)生bug 了,因此需要一個(gè) loading的動(dòng)畫來提示用戶數(shù)據(jù)正在加載弓千。

ECharts 默認(rèn)有提供了一個(gè)簡單的加載動(dòng)畫衡便。只需要調(diào)用 showLoading 方法顯示。數(shù)據(jù)加載完成后再調(diào)用 hideLoading 方法隱藏加載動(dòng)畫洋访。

myChart.showLoading();
$.get('data.json').done(function (data) {
  myChart.hideLoading();
  myChart.setOption(...);
});

移動(dòng)端自適應(yīng)

ECharts 工作在用戶指定高寬的 DOM節(jié)點(diǎn)(容器)中镣陕。ECharts的『組件』和『系列』都在這個(gè) DOM節(jié)點(diǎn)中,每個(gè)節(jié)點(diǎn)都可以由用戶指定位置捌显。圖表庫內(nèi)部并不適宜實(shí)現(xiàn) DOM文檔流布局茁彭,因此采用類似絕對(duì)布局的簡單容易理解的布局方式。但是有時(shí)候容器尺寸極端時(shí)扶歪,這種方式并不能自動(dòng)避免組件重疊的情況理肺,尤其在移動(dòng)端小屏的情況下。

  • 另外善镰,有時(shí)會(huì)出現(xiàn)一個(gè)圖表需要同時(shí)在PC妹萨、移動(dòng)端上展現(xiàn)的場景。這需要 ECharts 內(nèi)部組件隨著容器尺寸變化而變化的能力炫欺。

  • 為了解決這個(gè)問題乎完,ECharts 完善了組件的定位設(shè)置,并且實(shí)現(xiàn)了類似 CSS Media Query 的自適應(yīng)能力品洛。

ECharts組件的定位和布局

大部分『組件』和『系列』會(huì)遵循兩種定位方式:

1)left/right/top/bottom/width/height 定位方式:

這六個(gè)量中树姨,每個(gè)量都可以是『絕對(duì)值』或者『百分比』或者『位置描述』

  • 絕對(duì)值

    單位是瀏覽器像素(px),用 number 形式書寫(不寫單位)桥状。例如 {left: 23, height: 400}帽揪。

  • 百分比

    表示占 DOM 容器高寬的百分之多少,用 string 形式書寫辅斟。例如 {right: '30%', bottom: '40%'}转晰。

  • 位置描述

    • 可以設(shè)置 left: 'center',表示水平居中。
    • 可以設(shè)置 top: 'middle'查邢,表示垂直居中蔗崎。

這六個(gè)量的概念,和 CSS 中六個(gè)量的概念類似:

  • left:距離 DOM 容器左邊界的距離扰藕。
  • right:距離 DOM 容器右邊界的距離缓苛。
  • top:距離 DOM 容器上邊界的距離。
  • bottom:距離 DOM 容器下邊界的距離邓深。
  • width:寬度他嫡。
  • height:高度。

在橫向庐完,leftright徘熔、width 三個(gè)量中门躯,只需兩個(gè)量有值即可,因?yàn)槿蝺蓚€(gè)量可以決定組件的位置和大小酷师,例如 leftright 或者 rightwidth 都可以決定組件的位置和大小讶凉。 縱向,top山孔、bottom懂讯、height 三個(gè)量,和橫向類同不贅述台颠。

2)center / radius`定位方式:

  • center

    是一個(gè)數(shù)組褐望,表示 [x, y],其中串前,x瘫里、y可以是『絕對(duì)值』或者『百分比』,含義和前述相同荡碾。

  • radius

    是一個(gè)數(shù)組谨读,表示 [內(nèi)半徑, 外半徑],其中坛吁,內(nèi)外半徑可以是『絕對(duì)值』或者『百分比』劳殖,含義和前述相同。

    在自適應(yīng)容器大小時(shí)拨脉,百分比設(shè)置是很有用的哆姻。

橫向(horizontal)和縱向(vertical)

  • ECharts的『外觀狹長』型的組件(如 legendvisualMap女坑、dataZoom填具、timeline等),大多提供了『橫向布局』『縱向布局』的選擇。例如劳景,在細(xì)長的移動(dòng)端屏幕上誉简,可能適合使用『縱向布局』;在PC寬屏上盟广,可能適合使用『橫向布局』闷串。
  • 橫縱向布局的設(shè)置,一般在『組件』或者『系列』的 orient 或者 layout 配置項(xiàng)上筋量,設(shè)置為 'horizontal' 或者'vertical'烹吵。

于 ECharts2 的兼容:

  • ECharts2 中的 x/x2/y/y2 的命名方式仍被兼容,對(duì)應(yīng)于 left/right/top/bottom桨武。但是建議寫 left/right/top/bottom肋拔。
  • 位置描述中,為兼容 ECharts2呀酸,可以支持一些看起來略奇怪的設(shè)置:left: 'right'凉蜂、left: 'left'top: 'bottom'性誉、top: 'top'窿吩。這些語句分別等效于:right: 0left: 0错览、bottom: 0纫雁、top: 0,寫成后者就不奇怪了倾哺。

Media Query

Media Query 提供了『隨著容器尺寸改變而改變』的能力轧邪。

如下例子,可嘗試拖動(dòng)右下角的圓點(diǎn)羞海,隨著尺寸變化闲勺,legend 和 系列會(huì)自動(dòng)改變布局位置和方式。
要在 option 中設(shè)置 Media Query 須遵循如下格式:

option = {
  baseOption: { // 這里是基本的『原子option』扣猫。
    title: {...},
    legend: {...},
    series: [{...}, {...}, ...],
    ...
  },
  media: [{ // 這里定義了 media query 的逐條規(guī)則菜循。
    query: {...},   // 這里寫規(guī)則。
    option: {       // 這里寫此規(guī)則滿足下的option申尤。
      legend: {...},
      ...
    }
  },
  {
    query: {...},   // 第二個(gè)規(guī)則癌幕。
    option: {       // 第二個(gè)規(guī)則對(duì)應(yīng)的option。
      legend: {...},
      ...
    }
  },
  {                   // 這條里沒有寫規(guī)則昧穿,表示『默認(rèn)』勺远,
    option: {       // 即所有規(guī)則都不滿足時(shí),采納這個(gè)option时鸵。
      legend: {...},
      ...
    }
  }]
};

上面的例子中胶逢,baseOption厅瞎、以及 media 每個(gè) option 都是『原子 option』,即普通的含有各組件初坠、系列定義的 option和簸。而由『原子option』組合成的整個(gè) option,我們稱為『復(fù)合 option』碟刺。baseOption 是必然被使用的锁保,此外,滿足了某個(gè) query條件時(shí)半沽,對(duì)應(yīng)的 option 會(huì)被使用 chart.mergeOption() 來 merge 進(jìn)去爽柒。

query:

每個(gè) query 類似于這樣:

{
  minWidth: 200,
  maxHeight: 300,
  minAspectRatio: 1.3
}

現(xiàn)在支持三個(gè)屬性:widthheight者填、aspectRatio(長寬比)浩村。每個(gè)屬性都可以加上 minmax 前綴。比如占哟,minWidth: 200 表示『大于等于200px寬度』穴亏。兩個(gè)屬性一起寫表示『并且』,比如:{minWidth: 200, maxHeight: 300} 表示『大于等于200px寬度重挑,并且小于等于300px高度』。

option:

media中的 option 既然是『原子 option』棠涮,理論上可以寫任何 option 的配置項(xiàng)谬哀。但是一般我們只寫跟布局定位相關(guān)的,例如截取上面例子中的一部分 query option:

media: [
  ...,
  {
    query: {
      maxAspectRatio: 1           // 當(dāng)長寬比小于1時(shí)严肪。
    },
    option: {
      legend: {                   // legend 放在底部中間史煎。
        right: 'center',
        bottom: 0,
        orient: 'horizontal'    // legend 橫向布局。
      },
      series: [{                   // 兩個(gè)餅圖左右布局驳糯。
        radius: [20, '50%'],
        center: ['50%', '30%']
      },
      {
        radius: [30, '50%'],
        center: ['50%', '70%']
      }]
    }
  },
  {
    query: {
      maxWidth: 500               // 當(dāng)容器寬度小于 500 時(shí)篇梭。
    },
    option: {
      legend: {
        right: 10,              // legend 放置在右側(cè)中間。
        top: '15%',
        orient: 'vertical'      // 縱向布局酝枢。
      },
      series: [{                   // 兩個(gè)餅圖上下布局恬偷。
        radius: [20, '50%'],
        center: ['50%', '30%']
      },
      {
        radius: [30, '50%'],
        center: ['50%', '75%']
      }]
    }
  },
  ...
]

多個(gè) query 被滿足時(shí)的優(yōu)先級(jí):

注意,可以有多個(gè) query 同時(shí)被滿足帘睦,會(huì)都被 mergeOption袍患,定義在后的后被 merge(即優(yōu)先級(jí)更高)。

默認(rèn) query:

如果 media 中有某項(xiàng)不寫 query竣付,則表示『默認(rèn)值』诡延,即所有規(guī)則都不滿足時(shí),采納這個(gè)option古胆。

容器大小實(shí)時(shí)變化時(shí)的注意事項(xiàng):

  • 在不少情況下肆良,并不需要容器DOM節(jié)點(diǎn)任意隨著拖拽變化大小,而是只是根據(jù)不同終端設(shè)置幾個(gè)典型尺寸。
  • 但是如果容器DOM節(jié)點(diǎn)需要能任意隨著拖拽變化大小惹恃,那么目前使用時(shí)需要注意這件事:某個(gè)配置項(xiàng)夭谤,如果在某一個(gè) query option 中出現(xiàn),那么在其他 query option 中也必須出現(xiàn)座舍,否則不能夠回歸到原來的狀態(tài)沮翔。(left/right/top/bottom/width/height 不受這個(gè)限制。)
  • 『復(fù)合 option』 中的 media 不支持 merge
  • 也就是說曲秉,當(dāng)?shù)诙ɑ蛉墒础⑺摹⑽?...)次 chart.setOption(rawOption) 時(shí)承二,如果 rawOption復(fù)合option(即包含 media列表)榆鼠,那么新的 rawOption.media 列表不會(huì)和老的 media 列表進(jìn)行 merge,而是簡單替代亥鸠。當(dāng)然妆够,rawOption.baseOption仍然會(huì)正常和老的 option 進(jìn)行merge。
  • 其實(shí)负蚊,很少有場景需要使用『復(fù)合 option』來多次 setOption神妹,而我們推薦的做法是,使用 mediaQuery 時(shí)家妆,第一次setOption使用『復(fù)合 option』鸵荠,后面 setOption 時(shí)僅使用 『原子 option』,也就是僅僅用 setOption 來改變 baseOption伤极。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蛹找,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子哨坪,更是在濱河造成了極大的恐慌庸疾,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件当编,死亡現(xiàn)場離奇詭異届慈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)忿偷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門拧篮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人牵舱,你說我怎么就攤上這事串绩。” “怎么了芜壁?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵礁凡,是天一觀的道長高氮。 經(jīng)常有香客問我,道長顷牌,這世上最難降的妖魔是什么剪芍? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮窟蓝,結(jié)果婚禮上罪裹,老公的妹妹穿的比我還像新娘。我一直安慰自己运挫,他們只是感情好状共,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谁帕,像睡著了一般峡继。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上匈挖,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天碾牌,我揣著相機(jī)與錄音,去河邊找鬼儡循。 笑死舶吗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的择膝。 我是一名探鬼主播誓琼,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼调榄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起呵扛,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤每庆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后今穿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缤灵,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年蓝晒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腮出。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡芝薇,死狀恐怖胚嘲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情洛二,我是刑警寧澤馋劈,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布攻锰,位于F島的核電站,受9級(jí)特大地震影響妓雾,放射性物質(zhì)發(fā)生泄漏娶吞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一械姻、第九天 我趴在偏房一處隱蔽的房頂上張望妒蛇。 院中可真熱鬧,春花似錦楷拳、人聲如沸绣夺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乐导。三九已至,卻和暖如春浸颓,著一層夾襖步出監(jiān)牢的瞬間物臂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工产上, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留棵磷,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓晋涣,卻偏偏與公主長得像仪媒,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谢鹊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 最近在實(shí)習(xí)期間算吩,接手了一個(gè)數(shù)據(jù)搜索項(xiàng)目,需要我從后臺(tái)調(diào)取數(shù)據(jù)佃扼,并將之用折線圖直方圖顯示出來偎巢,并且可以將多組數(shù)據(jù)繪制...
    南客nk閱讀 7,971評(píng)論 3 21
  • 這篇文章主要講述Echarts設(shè)置字體和線條的顏色相關(guān)操作筆記,希望文章對(duì)你有所幫助兼耀,主要是自己的在線筆記吧压昼。我在...
    藍(lán)色夢想家閱讀 9,947評(píng)論 1 1
  • 什么是數(shù)據(jù)驅(qū)動(dòng)? 使用過Vue React框架我們就知道,我們不再更改某個(gè)DOM的innertext和innerh...
    Mr_Treasure閱讀 3,176評(píng)論 0 5
  • 你得丟開以往的事 才能不斷繼續(xù)前進(jìn)
    夢里的那條魚閱讀 203評(píng)論 0 1
  • 今天是此次七天跑步的最后一天瘤运,白天在家學(xué)習(xí)與整理電腦資料窍霞,把親近大自然的機(jī)會(huì)與晚上結(jié)合在一起了,正所謂一舉兩得拯坟。 ...
    55c0f2cf8669閱讀 198評(píng)論 0 1