分享

【免费赠书】使用 pyechart 轻松玩转数据可视化

 heii2 2018-09-15

pyecharts库可绘制多种图形。利用Scatter方法可绘制散点图,代码如下:

import numpy as np
import pandas as pd
import pyecharts

x = [10, 20, 30, 40, 50,60]
y = [10, 20, 30, 40, 50,60]
scatter =pyecharts.Scatter('散点图示例')         #加入标题
scatter.add('A', x,y)                           #绘制散点图
scatter

pyecharts绘图的核心代码是add方法,该方法用于添加图表的数据和设置各种配置项。在scatter中,add函数的参数如下,其中,name为图例名称,后面依次为x轴和y轴,symbol_size为散点图大小,默认为10。

add(name, x_axis,y_axis,
   extra_data=None,
symbol_size=10, **kwargs)

绘制的散点图如图所示。


利用Visualmap组件,可以通过图形点大小映射数值,效果如图所示。代码如下:

x = [10, 20, 30, 40, 50,60]
y = [10, 20, 30, 40, 50,60]
scatter = pyecharts.Scatter('散点图示例')
scatter.add('A', x, y,is_visualmap=True,
           visual_type='size',visual_range_size=[10, 60])
scatter


折线图


利用Line方法可绘制折线图,代码如下:

years = [1950, 1960,1970, 1980, 1990, 2000, 2010]
gdp = [300.2, 543.3,1075.9, 2862.5, 5979.6, 10289.7, 14958.3]
line =pyecharts.Line('折线图示例')
line.add('GDP',years, gdp, mark_point=['average'])        #标记平均值
line

下面给出line.add方法的参数。is_symbol_show显示标记图形;is_smooth显示平滑曲线;is_stack显示数据堆叠;is_step设置阶梯线图;is_fill绘制面积图,具体代码如下:

add(name, x_axis,y_axis,
   is_symbol_show=True,
   is_smooth=False,
   is_stack=False,
   is_step=False,
is_fill=False, **kwargs)

绘制的折线图如图所示。



下面给出通过设置is_step参数绘制阶梯图的代码,最终的效果如图所示

years = [1950, 1960,1970, 1980, 1990, 2000, 2010]
gdp = [300.2, 543.3,1075.9, 2862.5, 5979.6, 10289.7, 14958.3]
line =pyecharts.Line('阶梯图')
line.add('GDP',years, gdp, is_step=True)
line


面给出通过设置is_fill参数绘制面积图的代码。其中,area_color为填充颜色,area_opacity为透明度,效果如图所示。

years = [1950, 1960,1970, 1980, 1990, 2000, 2010]
gdp = [300.2, 543.3,1075.9, 2862.5, 5979.6, 10289.7, 14958.3]
line =pyecharts.Line('面积图')
line.add('GDP', years, gdp, is_fill=True,area_color='#000',area_opacity=0.3)
line


柱状图


利用Bar方法可以绘制柱状图,代码如下:

data = [23, 85, 72, 43,52]
labels =['A','B','C','D','E']
bar =pyecharts.Bar('柱状图')
bar.add('one',labels, data)
bar

下面给出bar.add方法的参数。其中,is_stack为堆积柱状图;bar_category_gap为类目间的距离,值为0时则可以绘制直方图。

add(name, x_axis,y_axis,
   is_stack=False,
bar_category_gap='20%',**kwargs)

绘制的柱状图如图所示。


使用多个add方法可以绘制并列柱状图,效果如图所示。代码如下:

data1 = [23, 85, 72, 43,52]
data2 = [14, 35, 62, 41,19]
labels =['A','B','C','D','E']
bar =pyecharts.Bar('并列柱状图')
bar.add('one',labels, data1)
bar.add('two', labels,data2)
bar


通过设置is_stack参数可以绘制堆积柱状图,效果如图所示。代码如下:

data1 = [23, 85, 72, 43,52]
data2 = [14, 35, 62, 41,19]
labels =['A','B','C','D','E']
bar =pyecharts.Bar('堆积柱状图')
bar.add('one',labels, data1, is_stack=True)
bar.add('two', labels,data2, is_stack=True)
bar

通过设置is_convert参数可以绘制垂直柱状图,效果如图所示。代码如下:

data1 = [23, 85, 72, 43,52]
labels =['A','B','C','D','E']
bar =pyecharts.Bar('垂直柱状图')
bar.add('one',labels, data1, is_convert=True)
bar


通过设置mark_point和mark_line参数可以标记点和线,效果如图所示。代码如下:

data1 = [23, 85, 72, 43,52]
data2 = [14, 35, 62, 41,19]
labels =['A','B','C','D','E']
bar =pyecharts.Bar('标记点和线')
bar.add('one',labels, data1, mark_point=['average'])
bar.add('two', labels, data2, mark_point=['max'], mark_line=['min','max'])
bar

注意:全局变量mark_line要写入最后一个add方法中。



令bar_category_gap参数为0,可绘制直方图,效果如图所示。代码如下:

data = [23, 85, 72, 43,52, 67, 98, 76]
labels =['A','B','C','D','E','F','G','H']
bar =pyecharts.Bar('直方图')
bar.add('',labels, data, bar_category_gap=0)
bar

饼图


饼图用于表现不同类别的占比情况。利用Pie方法可绘制饼图,代码如下:

data = [45, 76, 35, 47,56]
labels = ['电脑','手机','冰箱','彩电','洗衣机']
pie = pyecharts.Pie('饼图')
pie.add('', labels, data,is_label_show=True)
pie

下面给出pie.add方法的参数。其中,radius为设置饼图半径,默认为[0,75],第一项为内半径,第二项为外半径;center为设置饼图中心坐标,默认为[50,50],第一项为横坐标,第二项为纵坐标;rosetype可以设置南丁格尔图(玫瑰图),有两种表现形式,分别为radius和area。

add(name, attr, value,
   radius=None,
   center=None,
  rosetype=None, **kwargs)

绘制的饼图如图所示。



设置radius参数为[40,75],这样就有了内半径值,就可以绘制圆环图了,效果如图所示。代码如下:

data = [45, 76, 35, 47,56]
labels = ['电脑','手机','冰箱','彩电','洗衣机']
pie = pyecharts.Pie('圆环图')
pie.add('', labels,data, radius=[40,75], is_label_show=True)
pie


设置radius参数为[40,75],这样就有了内半径值,就可以绘制圆环图了,效果如图所示。代码如下:

data = [45, 76, 35, 47,56]
labels = ['电脑','手机','冰箱','彩电','洗衣机']
pie = pyecharts.Pie('圆环图')
pie.add('', labels,data, radius=[40,75], is_label_show=True)
pie


通过设置center参数可以绘制多个饼图,这样就可以比较两种玫瑰图的区别。通过图可以看出,通过radius参数绘制的玫瑰图的圆心角不同,以此来显示其数据的百分比,玫瑰图的半径显示数据的数值大小;通过area参数绘制的玫瑰图的圆心角相同,仅通过半径大小来显示数据的区别。实现代码如下:

data= [45, 76, 35, 47, 56]
labels= ['电脑','手机','冰箱','彩电','洗衣机']
pie =pyecharts.Pie('玫瑰图')

pie.add('',labels, data, radius=[20,75], center=[25,50],
       rosetype='radius')
pie.add('',labels, data, radius=[20,75], center=[75,50],
       rosetype='area', is_label_show=True)
pie

箱线图


箱线图可显示一组数据的最大值、最小值、中位数、下四分位数及上四分位数,可以体现数据的分布规律。利用Boxplot方法可绘制饼图,其参数见下文。其中,x_axis为横坐标列表;y_axis为嵌套列表。每个列表为[min, Q1, median (or Q2), Q3, max],该列表可通过内置的prepare_data方法转换。

add(name, x_axis, y_axis, **kwargs)

这里以Iris数据为例,首先读入数据,如图所示。


通过以下代码即可绘制箱线图,如图所示。

x =list(iris_data.columns[0:4])
y = [list(iris_data.sepal_length_cm),
   list(iris_data.sepal_width_cm),
   list(iris_data.petal_length_cm),
   list(iris_data.petal_width_cm)]      #构造y

boxplot =pyecharts.Boxplot('箱线图')
y_data =boxplot.prepare_data(y)      #数据转化
boxplot.add('', x,y_data)
boxplot



以上内容选自《从零开始学Python数据分析》。想要了解更多的数据分析技术可以点击购买链接来订购哦。



目前比较火的方向,大家都清楚,是机器学习。那么机器学习算法有没有推荐的书呢?就给大家推荐一本,如下:



福利来了



本次小编特意拿出 4 本《从零开始学Python数据分析》和3本《scikit learn机器学习》作为福利赠送给关注Python那些事的小伙伴们,特别感谢机械工业出版社的赞助与支持。


赠书规则:

1、大家可以在本文留言区留言评论自己想要某本书的理由或者是评论某项Python技术或者与Python那些事的故事,小编将从留言区选择最受欢迎的4位赠书;

2、我将从本文留言中选择我最喜欢的3个留言,大家可以自由发挥;


由于留言区数目有限,会筛选放出认真有价值的评论。截止日期为9月15日 22:00

注意:本着公平的原则,刷赞无效,并且永久取消活动资格,欢迎举报!

(完)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多