pyecharts x轴全显示_5分钟学会Pyecharts数据可视化


这是涛哥给你推荐的第40篇好文

来源 :Python与算法之美

29bf06438c21efb2275402e35ce00fb4.png

0c29b634b0ec6efd0f9d34330a3ae1f6.png

394664c9d49f7ade533e16125380c05d.png

小红:你先跟我说说什么是pyecharts吧。

小明:Echarts 是一个由百度开源的数据可视化javascript库,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts诞生了。简单地说,pyecharts就是百度开源的一个强大的javascript数据可视化库Echarts的python接口。

小红:明白,那这个pyecharts要怎么安装呢?

小明:很简单,用pip就可以安装了。下面是在jupyter notebook中安装这个库的一个示范。

# 安装pyecharts
!pip install pyecharts==0.5.11

# pyecharts_snapshot 提供图片导出功能
!pip install pyecharts_snapshot

一,基本图表

小红:好了,我已经安装成功了。你可不可以给我举一些常用图表的范例。

小明:OK,在数据分析中最常用的3种图表就是柱形图,折线图和散点图了。下面我们就来看一下pyecharts绘制这3种常用图表的范例吧。

1,柱形图

柱形图适合表现几组数据之间的对比关系,柱形图表现的数据的数量一般不宜太多,多了的话会像一堆杂草。

from  pyecharts import Bar

x = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋"]
y1 = [5, 20, 36, 10, 75]
y2 = [10, 25, 8, 60, 20]

bar = Bar(title = "产品月销量",width = 600,height = 420)
bar.add(name = "商家A", x_axis = x, y_axis = y1)
bar.add(name = "商家B", x_axis = x, y_axis = y2,is_xaxis_boundarygap =True)

# 导出绘图html文件,可直接用浏览器打开
bar.render('柱形图示范.html')
bar

4ba6869e59f59b678239bc62518755ff.gif

2,折线图

折线图适合描述两个变量之间的函数关系,例如常用它来描述一个变量随时间的变化趋势。

from  pyecharts import Line

x = ['2018-{:0>2d}'.format(s) for s in range(1,13)]
y1 = [5,10,26,30,35,30,20,26,40,46,40,50]
y2 = [8,20,24,36,40,36,40,45,50,53,48,58]

line = Line(title = "月销售总额",width = 600,height = 420)

line.add(name = "商家A", x_axis = x, y_axis = y1,
         line_width = 3,line_color = 'red')
line.add(name = "商家B", x_axis = x, y_axis = y2,
         yaxis_min = 0,yaxis_max = 100,is_xaxis_boundarygap = False,
         is_datazoom_show =True,line_width = 2,line_color = 'cyan')

line.render('折线图示范.html')
line

66bff8b9c48c083c85cabc9de3d18280.gif

3,散点图

散点图适合表现大量样本的多个属性的分布规律。散点图的每个点表示一个样本,每个坐标维度表示一个属性。

from pyecharts import Scatter
import pandas as pd 

dfboy = pd.DataFrame()
dfboy['weight'] = [56,67,65,70,57,60,80,85,76,64]
dfboy['height'] = [162,170,168,172,168,172,180,176,178,170]

dfgirl = pd.DataFrame()
dfgirl['weight'] = [50,62,60,70,57,45,62,65,70,56]
dfgirl['height'] = [155,162,165,170,166,158,160,170,172,165]

scatter = Scatter(title = "体格数据",width = 600,height = 420)
scatter.add(name = "boy", x_axis = dfboy['weight'], y_axis = dfboy['height'])
scatter.add(name = "girl", x_axis = dfgirl['weight'], y_axis = dfgirl['height'],
           yaxis_min = 130,yaxis_max = 200,xaxis_min = 30,xaxis_max = 100)

scatter.render("散点图示范.html")

scatter

14fb915e25adeaee5f5e88994aadc84d.png

当样本属性维度多于2个时,散点图可以使用点的颜色或大小等方式来表达更多属性维度。下面示范使用点的大小表示第3个维度。

from pyecharts import Scatter
import pandas as pd 

def custom_formatter(params):
    return (params.value[3] + ':' +
             str(params.value[0]) +','
             +str(params.value[1]) + ','
             +str(params.value[2]))

df = pd.DataFrame()
df['country'] = ["中国",'美国','德国','法国','英国','日本','俄罗斯','印度','澳大利亚','加拿大']
df['life-expectancy'] = [76.9,79.1,81.1,81.9,81.4,83.5,73.13,66.8,81.8,81.7]
df['capita-gdp'] = [13334,53354,44053,37599,38225,36162,23038,5903,44056,43294]
df['population'] = [1376048943,321773631,80688545,64395345,64715810,126573481,143456918,
                    1311050527,23968973,35939927]

scatter = Scatter(title = "各国发展水平",width = 600,height = 420)
scatter.add(name = '',
            x_axis = df['capita-gdp'],  # params.values[0]
            y_axis = df['life-expectancy'], # params.values[1]
            extra_data = df['population'].values.tolist(), # params.values[2]
            extra_name = df['country'].values.tolist(), # params.values[3]
            tooltip_formatter=custom_formatter,  #自定义提示框格式内容
            is_visualmap=True, 
            visual_orient="horizontal",
            visual_type = 'size',  #可以是size或者color
            visual_dimension=2,
            visual_range=[20000000, 1500000000],
           )
scatter

f20d6fbadb0bb2167cbe5123075faf93.gif

小红:你上面说的这些范例大部分还是挺简单的,可能这个用散点图来显示各个国家的发展水平的例子相对复杂一些,是不是如果有第3维数据就要用extra_data来传入呢?然后用visual_dimension来指定用点的颜色或者点的大小表示的是第几维的数据。这里的话,用点的大小表示了population也就是各个国家人口的多少。对吗?

小明:一点也没有错,你可以仿照着这个例子试试用点的颜色来表示第3维度的数据,应该不难懂的。

小红:棒棒的。除了这三种最常用图表外。还有一些别的好用的表现力强的图表可以推荐一些吗?

小明:你还真是学而不厌。那我再给你演示一下箱型图,词云图以及地理坐标系图吧。

4,箱型图

箱型图适合表现一组数据的统计分布规律,它能显示出一组数据的最大值、最小值、中位数、及上下四分位数。
箱型图的进阶版本是小提琴图,可以展示数据的密度估计曲线,可以用seaborn画出。

from pyecharts import Boxplot

x =['1班','2班','3班','4班']
y1=[78, 98, 56, 78, 90.0, 45, 78, 20, 87, 86, 74, 89, 94]
y2=[89, 82, 45, 67, 68, 78.0, 79, 98, 71, 56, 78, 81, 80]
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值