Pyecharts是一款强大的可视化工具。百度开发了一款基于JS强大的可视化库Echarts,可我们在绘图时,通常并不使用前端的技术来整理数据,而转换数据结构又非常麻烦。Pyecharts发挥了python胶水语言的特性,可以很好地帮助我们做数据可视化。

任何可视化库的应用都是从一张简单的柱状图开始。首先导入一份空气质量的数据。研究下5个城市的AQI指数。


data_1 = pd.read_excel('./20180630空气质量指数.xlsx',sheetname=0)#读取数据
data_1.head()

Pyecharts对于数据结构的要求非常统一简单。把数据转换成列表总没错。设定好图表的标题、副标题、颜色等一些参数,就可以直接出图了。



发现了pyecharts一大特性么?图都是可交互的!

简单的柱状图显然是不能满足你们的,我们继续。接下来导入一份省会城市快餐店数量的数据。



同样把数据放入列表中。设定图表的一些参数,如长宽、背景颜色等,可以做纵向的堆积柱状图,可以把直角坐标改为极坐标,甚至做极坐标分类堆叠柱状图!大家可以看看不同的图表下,同样的数据呈现什么效果:



平面的图,我们看了好几个了,来个3D的吧。这里导入一份某公司每日销量数据。数据结构如下,纵坐标为一年的52周,横坐标为一周的7天。



具体转换方式我们看下代码,这里要设置的东西比较多,具体效果大家可以自己试着调整下里面的参数。


x_axis = data_3['week'].tolist()
data_3['week'] = data_3['week'].str.replace('week','').map(int)-1
data_3 = data_3.set_index('week')
y_axis = data_3.columns.tolist()
data_3.columns = range(0,7)
data_3 = data_3.stack().reset_index()
data_3.columns = ['week','day','amount']
data_3.head()

style = Style(
    title_color="#A52A2A",
    title_pos = "center",
    width=900,
    height=1100,
    background_color="#ABABAB"
)

style_3d = style.add(
    is_visualmap=True,
    visual_range=[0,120],
    visual_range_color=['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf',
                        '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'],
    grid3d_width=200, 
    grid3d_depth=80,
    xaxis_label_textcolor='#fff',
    is_grid3d_rotate=True,
    legend_pos='right'
)

bar3d = Bar3D('全年产量情况',**style.init_style)
bar3d.add('每日产量',x_axis,y_axis,data_3.values.tolist(),**style_3d)
bar3d.render('./参考案例HTML/全年产量情况3D柱状图.html')
bar3d

见证奇迹的时刻到了!



好,接着我又有一个小问题,如果我把这一根根高耸的柱子压扁会是什么结果呢?
这不就是我们非常熟悉的热力图吗?



如果我们还想再深入的研究下销量情况,怎么办呢?我取了其中第一周的数据,来画个玫瑰图:



或者漏斗图: