折線圖目前應(yīng)用最廣的也是用來(lái)繪制各種軌跡,折線圖其實(shí)就是后面動(dòng)態(tài)軌跡圖、飛機(jī)航線圖的前身,公用的一個(gè)方法addPolyline,折線圖可以設(shè)置顏色、粗細(xì)、透明度等屬性,如果開(kāi)啟了懸浮繪圖工具欄,也可以直接單擊工具欄中的折線圖繪制工具,直接動(dòng)態(tài)繪制。
1. 同時(shí)支持在線地圖和離線地圖兩種模式。
2. 同時(shí)支持webkit內(nèi)核、webengine內(nèi)核、miniblink內(nèi)核、IE內(nèi)核。
3. 支持設(shè)置多個(gè)標(biāo)注點(diǎn),信息包括名稱、地址、經(jīng)緯度。
4. 可設(shè)置地圖是否可單擊、拖動(dòng)、鼠標(biāo)滾輪縮放。
5. 可設(shè)置協(xié)議版本、秘鑰、主題樣式、中心坐標(biāo)、中心城市、地理編碼位置等。
6. 可設(shè)置地圖縮放比例和級(jí)別,縮略圖、比例尺、路況信息等控件的可見(jiàn)。
7. 支持地圖交互,比如鼠標(biāo)按下獲取對(duì)應(yīng)位置的經(jīng)緯度。
8. 支持查詢路線,可設(shè)置起點(diǎn)位置、終點(diǎn)位置、路線模式、路線方式、路線方案(最少時(shí)間、最少換乘、最少步行、不乘地鐵、最短距離、避開(kāi)高速)。
9. 可顯示點(diǎn)線面工具,可直接在地圖上劃線、點(diǎn)、矩形、圓形等。
10. 可設(shè)置行政區(qū)劃,指定某個(gè)城市區(qū)域繪制圖層,在線地圖自動(dòng)輸出行政區(qū)劃邊界點(diǎn)集合到j(luò)s文件給離線地圖使用。
11. 可靜態(tài)或者動(dòng)態(tài)添加多個(gè)覆蓋物。支持點(diǎn)、折線、多邊形、矩形、圓形、弧線、點(diǎn)聚合等。
12. 提供函數(shù)接口處理經(jīng)緯度解析成地址和地址解析成經(jīng)緯度坐標(biāo)。
13. 提供的demo直接可以單獨(dú)選點(diǎn)執(zhí)行對(duì)應(yīng)的處理比如路線查詢。
14. 可以拿到路線查詢到的點(diǎn)坐標(biāo)信息集合,比如用于機(jī)器人坐標(biāo)導(dǎo)航等。
15. 封裝了豐富的函數(shù)比如刪除指定點(diǎn)和所有點(diǎn),刪除指定覆蓋物和所有覆蓋物等。
16. 標(biāo)注點(diǎn)彈框信息可以自定義內(nèi)容,標(biāo)準(zhǔn)html格式。
17. 標(biāo)注點(diǎn)單擊事件可選 0-不處理 1-自己彈框 2-發(fā)送信號(hào)。
18. 標(biāo)注點(diǎn)可設(shè)置動(dòng)畫效果 0-不處理 1-跳動(dòng) 2-墜落
19. 標(biāo)注點(diǎn)可設(shè)置本地圖片文件等。
20. 函數(shù)接口友好和統(tǒng)一,使用簡(jiǎn)單方便,就一個(gè)類。
21. 支持js動(dòng)態(tài)交互添加點(diǎn)、刪除點(diǎn)、清空點(diǎn)、重置點(diǎn),不需要刷新頁(yè)面。
22. 支持任意Qt版本、任意系統(tǒng)、任意編譯器。
1. 體驗(yàn)地址:[https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A](https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A) 提取碼:o05q 文件名:bin_map.zip
2. 國(guó)內(nèi)站點(diǎn):[https://gitee.com/feiyangqingyun](https://gitee.com/feiyangqingyun)
3. 國(guó)際站點(diǎn):[https://github.com/feiyangqingyun](https://github.com/feiyangqingyun)
4. 個(gè)人主頁(yè):[https://blog.csdn.net/feiyangqingyun](https://blog.csdn.net/feiyangqingyun)
5. 知乎主頁(yè):[https://www.zhihu.com/people/feiyangqingyun/](https://www.zhihu.com/people/feiyangqingyun/)
O.194
2020.08.24
工欲善其事,必先利其器
//
- 前言 -
◆ ◆ ◆ ◆
今天,小咖再來(lái)講講Pyecharts這一強(qiáng)大的數(shù)據(jù)可視化工具,其可將python與echarts結(jié)合,最終將得到動(dòng)態(tài)且美觀的圖表(用html打開(kāi)即為動(dòng)態(tài))。往期中,小咖曾展示過(guò)Pyecharts的動(dòng)態(tài)柱狀圖、折線圖、餅圖、散點(diǎn)圖、地圖、玫瑰圖的做法,今天小咖再來(lái)展示Pyecharts下詞云的做法。
之前小咖曾在Python金融應(yīng)用之制作詞云中提出過(guò)jieba的用法。相較而言,jieba適用于大段文本分析,而本文Pyecharts下的wordcloud則更適用于已整理出關(guān)鍵詞及其頻率的數(shù)據(jù)分析。
- Pyecharts做詞云圖 -
◆ ◆ ◆ ◆
第一步:安裝各種包
資料來(lái)源:西瓜財(cái)經(jīng)資訊
第二步:從wind導(dǎo)入基金重倉(cāng)股票數(shù)據(jù)
資料來(lái)源:西瓜財(cái)經(jīng)資訊
(1)從wind的基金——專題統(tǒng)計(jì)——資產(chǎn)配置中,下載基金重倉(cāng)持股數(shù)據(jù),置于特定文件夾中。
資料來(lái)源:wind
(2)通過(guò)python提取excel數(shù)據(jù),并保存為dateframe。
資料來(lái)源:西瓜財(cái)經(jīng)資訊
(3)將dateframe的列名稱設(shè)為第一行數(shù)據(jù)。
資料來(lái)源:西瓜財(cái)經(jīng)資訊
(4)刪除第一行,并刪除排名在三十以后的重倉(cāng)股數(shù)據(jù)。
資料來(lái)源:西瓜財(cái)經(jīng)資訊
第三步:利用pyecharts做詞云
資料來(lái)源:西瓜財(cái)經(jīng)資訊
(1)先安裝pyecharts:
pip install pyecharts
(2)pyecharts主要語(yǔ)句有:
——add():主要方法,用于添加圖表的數(shù)據(jù)和設(shè)置各種配置項(xiàng)
——print_echarts_options():打印輸出圖表的所有配置項(xiàng)
——render():默認(rèn)將會(huì)在根目錄下生成一個(gè) render.html 的文件,支持path參數(shù),設(shè)置文件保存位置,如 render(r"e:\my_first_chart.html"),文件用瀏覽器打開(kāi)
(3)做詞云。具體包括:
——導(dǎo)入圖形語(yǔ)句:from pyecharts import WordCloud
——設(shè)置主標(biāo)題與副標(biāo)題、圖形大小:wordcloud=WordCloud
——設(shè)置主題:wordcloud.use_theme('roma')
——添加詞云的數(shù)據(jù)及配置項(xiàng):wordcloud.add,包括數(shù)據(jù),圖例,標(biāo)簽等。
(4)設(shè)置標(biāo)簽欄的屬性:
資料來(lái)源:西瓜財(cái)經(jīng)資訊,簡(jiǎn)書
(5)注意,用pyecharts畫詞云時(shí),可以輸入兩種形式的數(shù)據(jù):
①分別設(shè)置Word數(shù)據(jù)和權(quán)重,如本文使用的如下語(yǔ)句:
wordcloud.add("詞云圖", #設(shè)置名稱
stock['名稱'], #設(shè)置word數(shù)據(jù)
stock['持有基金數(shù)']) #設(shè)置詞語(yǔ)權(quán)重
②同時(shí)設(shè)置Word數(shù)據(jù)和權(quán)重,即(word,value)這樣的元祖形式,然后將所有的詞放入一個(gè)list中。
例如:[(貴州茅臺(tái)'',1345), ('立訊精密',1082)]
(6)通好設(shè)置不同的主題和詞云形狀,可以得到如下不同的詞云。
資料來(lái)源:西瓜財(cái)經(jīng)資訊
資料來(lái)源:西瓜財(cái)經(jīng)資訊
資料來(lái)源:西瓜財(cái)經(jīng)資訊
參考鏈接:
https://www.jianshu.com/p/23200304409c
- 后言 -
◆ ◆ ◆ ◆
想要獲取源代碼的小伙伴關(guān)注公眾號(hào),后臺(tái)回復(fù)“Python金融應(yīng)用之利用Pyecharts做動(dòng)態(tài)圖(五)”即可。注意,源代碼可以直接粘貼使用,而且是帶文字說(shuō)明的哦。
沒(méi)發(fā)現(xiàn) ECharts 這款神器的時(shí)候,之前所做的數(shù)據(jù)統(tǒng)計(jì)圖只能自個(gè)純手寫,倒也是可以實(shí)現(xiàn),只不過(guò)特別的費(fèi)時(shí)。后來(lái)無(wú)意中在網(wǎng)上瞄到 ECharts 這款專門用來(lái)生成數(shù)據(jù)圖表的插件,便嘗試了一下,那感覺(jué)真的不要太爽!
官方介紹
ECharts,一個(gè)使用 JavaScript 實(shí)現(xiàn)的開(kāi)源可視化庫(kù),可以流暢的運(yùn)行在 PC 和移動(dòng)設(shè)備上,兼容當(dāng)前絕大部分瀏覽器,底層依賴輕量級(jí)的矢量圖形庫(kù) ZRender,提供直觀,交互豐富,可高度個(gè)性化定制的數(shù)據(jù)可視化圖表。
獲取 ECharts
1、下載地址
https://github.com/apache/incubator-echarts
2、點(diǎn)擊紅色箭頭按鈕,將壓縮包下載下來(lái)
image
3、echarts 庫(kù)放在解壓后文件夾中的 dist 目錄里
image
將整個(gè) dist 目錄復(fù)制到你的項(xiàng)目中去,可重命名為 echarts
備注:若不想下載 ECharts 庫(kù)文件,可在頭部直接引用 bootcdn 上的 echarts 文件,地址為:
https://cdn.bootcss.com/echarts/4.2.1-rc1/echarts.min.js
繪制數(shù)據(jù)圖表
1、柱狀圖
image
柱狀圖效果預(yù)覽
代碼實(shí)現(xiàn)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>數(shù)據(jù)統(tǒng)計(jì)圖:柱狀圖</title>
<!-- 引入 ECharts 文件 這里選擇min.js壓縮版的echarts -->
<script src="echarts/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: '2014-2019年 前端人均工資'
},
tooltip: {},//提示框組件(鼠標(biāo)移動(dòng)到數(shù)字表時(shí)觸發(fā))
xAxis: { //x軸
data: ["2014年","2015年","2016年","2017年","2018年","2019年"]
},
yAxis: {},//y軸 內(nèi)容會(huì)自動(dòng)從以下的series.data 中獲取
series: [{
name: '人均工資',
type: 'bar', //類型為:柱狀圖
data: [3800, 4600, 5100, 5800, 6300, 7300] //x軸項(xiàng)目對(duì)應(yīng)的數(shù)據(jù)
}]
};
// 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表。
myChart.setOption(option);
</script>
</body>
</html>
2、折線圖
image
折線圖效果預(yù)覽
代碼實(shí)現(xiàn)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>數(shù)據(jù)統(tǒng)計(jì)圖:折線圖</title>
<!-- 引入 ECharts 文件 這里選擇min.js壓縮版的echarts -->
<script src="echarts/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: '未來(lái)一周氣溫變化'
},
tooltip: {
trigger: 'axis'
},
xAxis: {
type: 'category',
data: ['周一','周二','周三','周四','周五','周六','周日']
},
yAxis: {
type: 'value',
axisLabel: { //坐標(biāo)軸刻度標(biāo)簽的相關(guān)設(shè)置。
formatter: '{value} °C' // 使用字符串模板,模板變量為刻度默認(rèn)標(biāo)簽 {value}
}
},
series: [
{
name:'最高氣溫',
type:'line',
data:[11, 11, 15, 13, 12, 13, 10],
},
{
name:'最低氣溫',
type:'line',
data:[1, -2, 2, 5, 3, 2, 0],
}
]
};
// 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表。
myChart.setOption(option);
</script>
</body>
</html>
3、餅圖
餅圖效果預(yù)覽
代碼實(shí)現(xiàn)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>數(shù)據(jù)統(tǒng)計(jì)圖:餅圖</title>
<!-- 引入 ECharts 文件 這里選擇min.js壓縮版的echarts -->
<script src="echarts/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: '某公司年齡階段的員工占比',
x:'center'//水平居中
},
tooltip : {//提示框組件。
trigger: 'item', //'item' 數(shù)據(jù)項(xiàng)圖形觸發(fā),主要在散點(diǎn)圖,餅圖等無(wú)類目軸的圖表中使用。
formatter: "{a} <br/>{b} : {c} (bt799zr%)" //{a}(系列名稱),{b}(數(shù)據(jù)項(xiàng)名稱),{c}(數(shù)值), hz77t9n(百分比)
},
series : [
{
name: '年齡占比',
type: 'pie',
radius : '55%',//餅圖的半徑
center: ['50%', '60%'],//餅圖的中心(圓心)坐標(biāo),數(shù)組的第一項(xiàng)是橫坐標(biāo),第二項(xiàng)是縱坐標(biāo)。
data:[
{value:80, name:'20-25歲'},
{value:30, name:'26-30歲'},
{value:20, name:'31-35歲'},
{value:8, name:'36-40歲'},
{value:5, name:'41歲以上'}
],
itemStyle: {//圖形樣式。
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
// 使用剛指定的配置項(xiàng)和數(shù)據(jù)顯示圖表。
myChart.setOption(option);
</script>
</body>
</html>
結(jié)語(yǔ)
以上繪制的圖表是數(shù)據(jù)圖中用的頻率較高的三種。不僅如此,ECharts 還可用于地理數(shù)據(jù)可視化的地圖,用于關(guān)系數(shù)據(jù)可視化的關(guān)系圖,多維數(shù)據(jù)可視化的平行坐標(biāo),還有用于 BI 的漏斗圖,并且支持圖與圖之間的混搭。更多有關(guān) ECharts 的使用方法,可參考 ECharts 的官方文檔:
https://echarts.baidu.com/index.html
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。