<div class="._5ce-wx-style" style="font-size:16px;">
<div class="rich_media_content" id="js_content">
<img alt="5e5f2ba1922e769e427b16d487dfd8de.gif" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-72dd6216ba2c70f0bd3388546b7d3747.gif">
<p><strong>OLDER BROTHER</strong></p>
<p> 大家好,我是你们的机房老哥! </p>
“
<p>在上一期推送中,老哥详细介绍了pyecharts的配置全局项,详见可视化入门 | pyecharts全局配置项详解。</p>
<p>在本次推送中,老哥将通过几个自己写的案例,尽可能拓展绘图所用的知识点,带你进一步体会pyecharts的绘图流程。</p>
<p>本次绘制了散点图,通过散点图讲解了多图放置。绘制了地图,通过地图讲解了时间轴。最后绘制了词云图。本次教程的源代码,在公众号后台回复<strong>“可视化”</strong>即可获取。</p>
<p>先预览一下本次的成果吧!</p>
<img alt="a13a49868f25e9e0a1c1306cf7905197.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-cb8783567eaddd2ec022fa6e083333fa.png">
<p>▲散点图(Scatter)</p>
<img alt="bb7ae29f26ea93e52c3471148d8042c6.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-0ac5fa4b4388bc8cb85165aff06b93a5.png">
<p>▲时间线轮播地图(Timeline_map)</p>
<img alt="d707183da5c75ace30ecbcdceb49976a.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-983785fa83291c483e7559034b0fe1b1.png">
<p>▲词云图(Wordcloud)</p>话不多说,接下来进入全网最细的绘制教程。
<p>散点图-Scatter</p>
<img alt="a13a49868f25e9e0a1c1306cf7905197.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-cb8783567eaddd2ec022fa6e083333fa.png">
<p>散</p>
<p>点图属于直角坐标系图表。老哥除了讲散点图的画法之外,顺便讲一下怎样并行放置多图、以及从json文件中读取数据绘图。</p>
<pre class="blockcode"><code>import jsonfrom pyecharts import options as optsfrom pyecharts.charts import Grid, Scatter</code></pre>
<p>从pyecharts中导入options函数,并简写为opts,作用为添加全局配置项。</p>
<p>从pyecharts.charts中分别导入Grid, Scatter。Grid负责并行多图功能、Scatter负责散点图。</p>
<pre class="blockcode"><code>with open("life-expectancy-table.json", "r", encoding="utf-8") as f: j = json.load(f)</code></pre>
<p>读取life-expectancy-table.json文件中的数据。数据结构如下,分为Income、Life Expectancy、Population、Country、Year五个维度:</p>
<pre class="blockcode"><code>[[ "Income", "Life Expectancy", "Population", "Country", "Year"], [ 815, 34.05, 351014, "Australia", 1800]]</code></pre>
<p>接下来绘制散点图</p>
<pre class="blockcode"><code>S1 = Scatter()S1.add_dataset( dimensions=[ "Income", "Life Expectancy", "Population", "Country", {"name": "Year", "type": "ordinal"}, ], source=j)</code></pre>
<p>定义S1 = Scatter(),使用S1.add_dataset()函数添加数据集。</p>
<p>.add_dataset()参数如下:</p>
<table><tbody><tr><td colspan="1" rowspan="1"><p>参数</p></td><td colspan="1" rowspan="1"><p>含义</p></td></tr><tr><td colspan="1" rowspan="1"><p>source</p></td><td colspan="1" rowspan="1"><p>数据来源</p></td></tr><tr><td colspan="1" rowspan="1"><p>dimensions</p></td><td colspan="1" rowspan="1"><p>数据维度</p></td></tr><tr><td colspan="1" rowspan="1"><p>sourceHeader</p></td><td colspan="1" rowspan="1"><p>数据标头</p></td></tr></tbody></table>
<pre class="blockcode"><code>S1.add_yaxis( series_name="", y_axis=[], symbol_size=2.5, encode={"x": "Income", "y": "Life Expectancy", "tooltip": [0, 1, 2, 3, 4]}, label_opts=opts.LabelOpts(is_show=False))</code></pre>
<p>S1.add_yaxis()输入参数。</p>
<p>本例中虽然没有设置y_axis和series_name的值,但必须占位,否则报错。</p>
<p>symbol_size=2.5设置符号大小2.5px。</p>
<p>encode设置x维度为income,y维度为Population,tooltip为提示框,按顺序显示5个维度的数据信息。</p>
<p>在label_opts中关闭了标签选项,因为点数太多,开启标签字会混在一起。</p>
<p>label_opts常用参数如下表:</p>
<table><tbody><tr><td colspan="1" rowspan="1"><p>参数</p></td><td colspan="1" rowspan="1"><p>含义</p></td></tr><tr><td colspan="1" rowspan="1"><p>series_name</p></td><td colspan="1" rowspan="1"><p>系列名称,用于 tooltip 的显示,legend 的图例筛选。</p></td></tr><tr><td colspan="1" rowspan="1"><p>y_axis</p></td><td colspan="1" rowspan="1"><p>系列数据</p></td></tr><tr><td colspan="1" rowspan="1"><p>is_selected</p></td><td colspan="1" rowspan="1"><p>是否选中图例</p></td></tr><tr><td colspan="1" rowspan="1"><p>xaxis_index</p></td><td colspan="1" rowspan="1"><p>使用的 x |
|