今天就满足大家的要求,对2005-2018年期间,14年双色球数据进行分析可视化,看看能否找到一些规律可循(在我看来,彩票规律就是没有规律)。
不过,通过此案例,你可以学习到如何使用matplotlib画直方图、气泡图以及更好看的气泡图;同时也能明白一些道理,如:为什么穷人更爱买彩票?
2005-2018年,双色球的数据统计
在正式学习matplotlib画图前,先为大家普及下,关于中国福利彩票的一些中奖规则以及福利彩票用途去向。
看完视频,说说很多网友自作聪明,彩票开奖是抽出现次数最少的组合。这样的想法是完全错误的。
其实,每期的奖金总数是固定的,让两个人分,还是十个人分,都是一样的!如果说每一期一等奖奖金都是一千万,有作弊的意义,抽个被买的最少的组合!
但为什么每期双色球一等奖奖金不是固定的呢!就是因为其奖金机制,双色球当期销售额的51%作为当期奖金!它分为当期奖金(49%)和调节基金(2%)两部分。比如说,某期双色球销量为3亿元,那么,就有1.47亿元成为当期奖金,600万元成为调节基金。
接下来,我们通过Python对2005-2018年期间的数据进行分析,主要是通过此案例学习如何用matplotlib画直方图、气泡图以及更好看的气泡图。
一、直方图解读历年中奖注数
利用matplotlib画直方图,主要涉及到两个函数:
1.matplotlib.pyplot.bar(left,height,alpha=1,width=0.8,color=,edgecolor=,label=,lw=3)
参数含义:
left:x轴的位置序列,一般采用arange函数产生一个序列;height:y轴的数值序列,也就是柱形图的高度,一般就是我们需要展示的数据;alpha:透明度width:为柱形图的宽度,一般这是为0.8即可;color或facecolor:柱形图填充的颜色;edgecolor:图形边缘颜色label:解释每个图像代表的含义linewidthorlinewidthsorlw:边缘or线的宽度
2.matplotlib.pyplot.legend()
plt.legend()函数主要的作用就是给图加上图例,plt.legend([x,y,z])里面的参数使用的是list的的形式,默认情况下是将label值赋给它。
详细代码:
效果图如下:
历年一等奖、二等奖中奖数
二、气泡图解读销售额的大小,与一等奖的占比率并没有关系
气泡图主要用到scatter()函数,具体用法如下:
scatter(x,y)在向量x和y指定的位置创建一个包含圆形的散点图。该类型的图形也称为气泡图。
scatter(x,y,sz)指定圆大小。要绘制大小相等的圆圈,请将sz指定为标量。要绘制大小不等的圆,请将sz指定为长度等于x和y的长度的向量。
scatter(x,y,sz,c)指定圆颜色。要以相同的颜色绘制所有圆圈,请将c指定为颜色名称或RGB三元数。要使用不同的颜色,请将c指定为向量或由RGB三元数组成的三列矩阵。
特别注意的是,s离散化的方法,因为需要通过点的大小来直观感受其所表示的数值大小,利用当前点的数值减去集合中的最小值后+0.1再*1000。
历年销售额与一等奖的中奖占比率之间关系
由上图可看出,随着双色球销售额的变化,而一等奖占比率基本没变化,总是在0.06-0.75之间徘徊。
三、用Python画一张好看的气泡图
前面我们已经讲了如何画直方图、气泡图,接下来我们将直方图与气泡图,通过极坐标系将两者结合在一起展示出来,效果图如下:
最后,通过软件处理,添加一些文字性的描述,即可获得一张好看的可视化气泡图。觉得好看,大家也可以动手操作一遍!
关于用Python画一张好看的气泡图,就到此结束!
四、题外话:为什么穷人更爱买彩票?
在我看来,主要是对概率的认知偏差,他们只有一种理念,就是多买少买,多少要买;早中晚中,早晚要中。但富人由于接受了更好的教育和训练,更容易通过逻辑思考来避开这些概率认知错误。对概率的估算越客观,对这种负回报率的彩票投资就越少。同时,因为穷人拥有的一夜暴富的机会实在是不多,碰上了就会更珍惜。
福利彩票其本质是一种转移支付,目的是促进社会平等。理想状况下,应该让富人买彩票来补贴穷人。但由于穷人对一夜暴富的渴望以及对概率认知的偏差,反倒成了穷人买彩票来补贴富人。这真是本末倒置。
最终形成,让一部分先富起来,另一部分人让这部分人变得越来越富!
--【本文完】--
推荐荐阅读:
西工大开源拥挤人群数据集生成工具,大幅提升算法精度|CVPR2019
R和Python谁更好?这此让你「鱼与熊掌」兼得
10行Python,搭建一个游戏AI|视频教程
云计算时代运维的出路在哪
30岁的万维网活不长了!蒂姆·伯纳斯·李要借去中心化亲手杀死它,你再也不用担心...