写在前面

这个学期,选修了一门机器学习与大数据处理,所使用的工具是Jupyter Notebooks.前一次的作业要求把分析出来的数据可视化,对于这个大家的第一反应大概会是用matplotlib。这个固然很方便,但是之前有看过别人用pyecharts做了全国影院分布密度地图可视化,一直想找个机会试试,现在终于可以名正言的尝试了。
试了大概两个小时,终于算是可以正是入门了,由于自己参考了几篇文章,所以会在本文结束的时候把相关文章的链接贴出。

第一步 打开【Anaconda Prompt】,安装wheel和pip.

【Anaconda Prompt】命令行:conda install wheel, pip

jupyter安装snowNLP jupyter安装pyecharts_数据可视化

jupyter安装snowNLP jupyter安装pyecharts_jupyter安装snowNLP_02

第二步 安装HTML5的库,不然显示不了pyecharts的图.

【Anaconda Prompt】命令行:conda install -c anaconda html5lib

jupyter安装snowNLP jupyter安装pyecharts_命令行_03

第三步 安装pyecharts(如果一开始安装失败了,可以卸载了重新安装)

【Anaconda Prompt】命令行:卸载 pip uninstall pyecharts

【Anaconda Prompt】命令行:重新安装 pip install pyecharts

jupyter安装snowNLP jupyter安装pyecharts_jupyter安装snowNLP_04

第四步 安装matplotlib(不然jupyter显示不出图片)

【Anaconda Prompt】命令行: conda install matplotlib

jupyter安装snowNLP jupyter安装pyecharts_jupyter安装snowNLP_05


当然,之前在环境中安装过的就不用再次安装了。

第五步 启动jupyter,弄一个例子康康

这是选修课我上次的作业里一个小步骤,代码如下:

1 通过pandas读取数据
import numpy as np
import pandas as pd

df_wind = pd.read_excel("windspeed.xlsx")#为风速文件
df_wind.columns = ['年份', '月份', '日期', '日平均风速', '日最大风速','日最大风速对应风向','日极大风速','日极大风速对应风向']
df = df_wind.dropna(axis=0,how='any')#把没有完整数据的记录删掉
df.head()#查看前五条数据

运行结果如下:

jupyter安装snowNLP jupyter安装pyecharts_命令行_06

2 再次细化数据
gd1 = df["日最大风速"].groupby(df["年份"])#以月份分组再取出日最大风速的数据作为新的数据帧
a = gd1.mean()#取期望值
gd2 = df["日极大风速"].groupby(df["年份"])#同上,取的为日极大风速
b = gd2.mean()#取期望值
a#查看其中一个数据帧的

运行效果如下:

jupyter安装snowNLP jupyter安装pyecharts_数据_07

3 pyecharts数据可视化
import pyecharts.options as opts
from pyecharts.faker import  Faker
from pyecharts.charts import Line
am = a.max()
bm = b.max()
x = ['2003','2004','2005','2006','2007','2008','2009','2010','2011','2012','2013','2014','2015']
y1 = a.values
y2 = b.values
line = (
        Line()
        .add_xaxis(x)
        .add_yaxis("日最大风速",y1,markpoint_opts=opts.MarkPointOpts(
                data=[opts.MarkPointItem(name="风速最大点", coord=[x[3], y1[3]], value="%.2f"%am)]
            ),)
        .add_yaxis("日极大风速", y2,markpoint_opts=opts.MarkPointOpts(
                data=[opts.MarkPointItem(name="风速最大点", coord=[x[0], y2[0]], value="%.2f"%bm)]
            ),)
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(title_opts=opts.TitleOpts(title="风速折线图"))
    )
line.render_notebook()

结果如图所示:

jupyter安装snowNLP jupyter安装pyecharts_数据_08

写在后面

pyecharts的确是一个可视化功能很强大的库,而且自从今年新的版本出来后绘图功能更丰富,但是也因此之前的语法大多不能用了,所以自己也是刚刚入门,这里安利对数据可视化感兴趣的同学可以一起进行探索,相互学习。