0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Python带领大家一起探索这些诱人的奖金背后的秘密!

电子工程师 来源:lp 2019-03-19 10:29 次阅读

之前的一篇文章中,作者为大家用 Python 爬取了近 14 年所有的福彩 3D 信息,有了这些信息,我们要是否可以找到中奖规律,增加中奖概率呢?本期内容,作者就将带领大家一起探索这些诱人的奖金背后的秘密!

今天就满足大家的要求,对 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:解释每个图像代表的含义linewidth or linewidths or lw:边缘or线的宽度

2.matplotlib.pyplot.legend()

plt.legend()函数主要的作用就是给图加上图例,plt.legend([x,y,z])里面的参数使用的是list的的形式,默认情况下是将label值赋给它。

详细代码:

importnumpyasnpimportmatplotlib.pyplotaspltimportpandasaspddefDrawHistogram(read_name):#读取数据read_name=r"C:UsersAdministratorDesktopssq.csv"fp=pd.read_csv(read_name)first_prize=fp.first_prizesecond_prize=fp.second_prize#配置图形参数ind=np.arange(len(first_prize))width=0.5fig,ax=plt.subplots()rects1=ax.bar(ind-width/2,first_prize,width,color='SkyBlue',label='First')rects2=ax.bar(ind+width/2,second_prize,width,color='IndianRed',label='Second')ax.set_ylabel('Stakes')ax.set_title('Stakesbyyearandrank')plt.xticks(ind,(18,17,16,15,14,13,12,11,10,9,8,7,6,5))ax.legend()plt.show()if__name__=='__main__':DrawHistogram(r"C:UsersAdministratorDesktopssq.csv")

效果图如下:

历年一等奖、二等奖中奖数

由上图可看出,13、14 年是获奖注数 Top 的一年,同时 13、14 年的销售额也是最多的,分别高达 549 亿、573 亿元。这其实与当年中国经济稳中向好也有关系,2013 年时中国经济关键的一年。这一年,全球经济风云变幻,美国经济增速回落,欧元区继续萎缩,巴西、俄罗斯、印度物价连续上涨,比特币升值近百倍……在这个全球经济一片哀鸣的2013 里,我国采取了多项措施来促进经济的稳定增长,在“黑天鹅”满天飞的2013年里,我国又发生了很多割接、牵动人心的改革事件。如上海自贸区挂牌、中国大妈炒金成为热门词汇,地王的记录频频被刷新等。

二、气泡图解读销售额的大小,与一等奖的占比率并没有关系

气泡图主要用到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。

详细代码:

importpandasaspdimportnumpyasnpimportseabornassnsimportmatplotlib.pyplotaspltdefDrawBubble(read_name):#读取数据fp=pd.read_csv(read_name)x=fp.salesy=fp.ratez=fp.rate#配置参数sns.set(style="whitegrid")cm=plt.cm.get_cmap('RdYlBu')fig,ax=plt.subplots(figsize=(12,10))bubble=ax.scatter(x,y,s=(z-np.min(z)+0.1)*3000,c=z,cmap=cm,linewidth=0.5,alpha=0.5)ax.grid()fig.colorbar(bubble)ax.set_xlabel('salesofyear',fontsize=15)ax.set_ylabel('rateofsomething',fontsize=15)plt.show()if__name__=='__main__':DrawBubble(r"C:UsersAdministratorDesktopssq.csv")

效果图如下:

历年销售额与一等奖的中奖占比率之间关系

由上图可看出,随着双色球销售额的变化,而一等奖占比率基本没变化,总是在0.06-0.75之间徘徊。

三、用Python画一张好看的气泡图

前面我们已经讲了如何画直方图、气泡图,接下来我们将直方图与气泡图,通过极坐标系将两者结合在一起展示出来,效果图如下:

详细代码:

importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportmatplotlib.font_manager#读取数据read_name=r"C:UsersAdministratorDesktopssq.csv"fp=pd.read_csv(read_name)first_prize=fp.first_prizesecond_prize=fp.second_prizerate=fp.rate#一等奖中奖注数S1=first_prizex1=[(3/2)*np.pi+np.pi/(len(S1)+1)*(i+1)foriinrange(2*(len(S1)+1))ifi

最后,通过软件处理,添加一些文字性的描述,即可获得一张好看的可视化气泡图。觉得好看,大家也可以动手操作一遍!

关于用Python画一张好看的气泡图,就到此结束!

四、题外话:为什么穷人更爱买彩票?

在我看来,主要是对概率的认知偏差,他们只有一种理念,就是多买少买,多少要买;早中晚中,早晚要中。但富人由于接受了更好的教育和训练,更容易通过逻辑思考来避开这些概率认知错误。对概率的估算越客观,对这种负回报率的彩票投资就越少。同时,因为穷人拥有的一夜暴富的机会实在是不多,碰上了就会更珍惜。

福利彩票其本质是一种转移支付,目的是促进社会平等。理想状况下,应该让富人买彩票来补贴穷人。但由于穷人对一夜暴富的渴望以及对概率认知的偏差,反倒成了穷人买彩票来补贴富人。这真是本末倒置。

最终形成,让一部分先富起来,另一部分人让这部分人变得越来越富!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6513

    浏览量

    87609
  • 函数
    +关注

    关注

    3

    文章

    3903

    浏览量

    61310
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83476

原文标题:5700亿,16227注,一探15年福彩奥秘!(附完整Python代码)

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    这个教程挺好的 希望跟大家一起分享

    这个教程挺好的 希望跟大家一起分享
    发表于 06-18 16:12

    个带收音功能的产品遇到问题,大家一起讨论

    原理图在图片与附件中,正在做个移动插卡音箱并带收音功能的产品。个键K2(具体位置如附件中的原理图)1:短按实现播放/暂停,2:较长按实现进入下个台,3:超长按实现自动搜台。直没
    发表于 01-09 18:49

    20个模拟电路图 大家一起分享

    本帖最后由 gk320830 于 2015-3-8 06:59 编辑 20个模拟电路图大家一起来为兴趣、爱好分享
    发表于 05-11 12:20

    四轴资料,大家一起共享

    四轴资料大全,与大家一起分享,欢迎大家一起讨论,祝大家国赛顺利
    发表于 09-02 23:06

    大家一起讨论音乐频谱

    我看到很多人做了音乐频谱,我想让大家一起讨论下音乐频谱,什么led好?是高亮的还是般的,
    发表于 11-29 14:37

    些PCB的资料分享给大家大家一起进步

    些PCB的资料分享给大家大家一起进步
    发表于 09-08 08:42

    大家一起学STM32

    大家一起学STM32440365904 群号
    发表于 12-05 20:07

    基于ST的电机控制手册,大家一起交流下

    基于ST的电机控制手册,大家一起交流下
    发表于 12-16 14:19

    【麦昆试用申请】带领孩子一起学习

    项目名称:带领孩子一起学习试用计划:申请理由 本人在单片机开发方面有多年经验,也直想要开发个可以适合孩子动手的具有教育意义的电子产品,看到本次的适用,感觉非常适合,希望可以借鉴和学
    发表于 04-17 14:36

    世界首款K波段DAC背后秘密

    EV12DS460A背后的设计秘密,介绍为了提高性能和规避CMOS设计限制而引入的超高速制程。同时本文也将解释,紧凑的单核心数据转换器核心配合仔细斟酌的设计如何让EV12DS460A的性能有突破性提高。最后,您可以看到布线和电路简化的细微差别是设计时应考虑的重要因素。
    发表于 07-18 06:39

    Python数据可视化专家的七个秘密

    分享 Python数据可视化专家的七个秘密
    发表于 05-15 06:43

    大家一起记单词

    大家一起来用LAB记单词.网上找的文档,整理了下,LABVIEW分类读出来!
    发表于 02-02 14:41

    有关Python的解析

    搜了很多历年蓝桥杯真题解答,大多都是Java,C++,C这些语言编写的代码解析。Python解析的几乎,甚至可以说没有。而当下Python又这么火热,蓝桥杯也出了Python组,所以打
    发表于 07-29 08:39

    可以使用STM提供的现有Python代码并与新的MCU一起运行吗?

    的 MCU 可以替代 STM32L476RGT6,同时最大限度地减少固件开发中断,即我们可以使用 STM 提供的现有 Python 代码并与新的 MCU 一起运行?
    发表于 12-23 08:18

    大家一起了解ART的各部分及其主要流程

    书特色本书从个编译器开发者的视角,带领读者在ART的世界里进行遨游,和大家一起了解ART的各部分及其主要流程。本书在编写的过程中,力图将ART的整体架构梳理清楚,包括在介绍其中的模块
    发表于 04-11 08:33