当前位置: 首页>Python>正文

5700億,16227注!15年來,雙色球一等獎中獎占比率幾乎不變(附Python代碼,中獎人)...

5700億,16227注!15年來,雙色球一等獎中獎占比率幾乎不變(附Python代碼,中獎人)...

摘要:Python畫直方圖,氣泡圖。?


這是濤哥給你推薦的第4篇文章

去年,我曾寫過一篇文章我用Python爬取了14年所有的福彩3D信息,彩民們,只能幫你們到這了,得到很多人的反響,很多粉絲留言,快點出一版分析教程,找找其中的規律。說不定哪天頭等獎就是你,從此迎娶白富美,走上人生巔峰!


640?wx_fmt=jpeg


今天,戀習Python就滿足大家的要求,對其2005-2018年期間,14年的雙色球數據進行分析可視化,看看能否找到一些規律可循(在我看來,彩票規律就是沒有規律)。不過,通過此案例,你可以學習到關于matplotlib如何畫直方圖、氣泡圖以及更好看的氣泡圖,同時也能明白一些道理,如為什么窮人更愛買彩票。


640?wx_fmt=png

2005-2018年,雙色球的數據統計


在學習matplotlib畫圖前,戀習Python為大家普及下,關于中國福利彩票的一些中獎規則以及福利彩票用途去向。


視頻來源:飛碟說

看完視頻,說說很多網友自作聰明,彩票開獎是抽出現次數最少的組合。這樣的想法是完全錯誤的。


其實,每期的獎金總數是固定的,讓兩個人分,還是十個人分,都是一樣的!如果說每一期一等獎獎金都是一千萬,有作弊的意義,抽個被買的最少的組合!


但為什么每期雙色球一等獎獎金不是固定的呢!就是因為其獎金機制,雙色球當期銷售額的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值賦給它。


詳細代碼:

import?numpy?as?np
import?matplotlib.pyplot?as?plt
import?pandas?as?pddef?DrawHistogram(read_name):#讀取數據read_name?=?r"C:\Users\Administrator\Desktop\ssq.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('Stakes?by?year?and?rank')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:\Users\Administrator\Desktop\ssq.csv")

效果圖如下:

640?wx_fmt=png

歷年一等獎、二等獎中獎數


由上圖可看出,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。


詳細代碼:

import?pandas?as?pd
import?numpy?as?np
import?seaborn?as?sns
import?matplotlib.pyplot?as?pltdef?DrawBubble(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('sales?of?year',?fontsize?=?15)ax.set_ylabel('rate?of?something',?fontsize?=?15)plt.show()if?__name__=='__main__':DrawBubble(r"C:\Users\Administrator\Desktop\ssq.csv")


效果圖如下:

640?wx_fmt=png

歷年銷售額與一等獎的中獎占比率之間關系


由上圖可看出,隨著雙色球銷售額的變化,而一等獎占比率基本沒變化,總是在0.06-0.75之間徘徊。


、用Python畫一張好看的氣泡圖


前面我們已經講了如何畫直方圖、氣泡圖,接下來我們將直方圖與氣泡圖,通過極坐標系將兩者結合在一起展示出來,效果圖如下:

640?wx_fmt=png

詳細代碼:

import?numpy?as?np
import?pandas?as?pd
import?matplotlib.pyplot?as?plt
import?matplotlib.font_manager#讀取數據
read_name?=?r"C:\Users\Administrator\Desktop\ssq.csv"
fp?=?pd.read_csv(read_name)
first_prize?=?fp.first_prize
second_prize?=?fp.second_prize
rate?=?fp.rate#一等獎中獎注數
S1=first_prize
x1=[(3/2)*np.pi+np.pi/(len(S1)+1)*(i+1)?for?i?in?range(2*(len(S1)+1))?if?i<len(S1)]
y1=[180?for?i?in?range(2*(len(S1)+1))?if?i<len(S1)?]#為了畫出效果比例好看,將二等獎注數縮小5倍來表示
S2=second_prize/5
x2=[(3/2)*np.pi+np.pi/(len(S1)+1)*(i+1)?for?i?in?range(2*(len(S1)+1))?if?i<len(S1)]
y2=[130?for?i?in?range(2*(len(S1)+1))?if?i<len(S1)?]H1=[60/2,69/2,70/2,62/2,67/2,70/2,75/2,67/2,70/2,70/2,64/2,74/2,70/2,72/2]
W1=[0.05?for?i?in?range(2*(len(S1)+1))?if?i<len(S1)]
B=[30?for?i?in?range(2*(len(S1)+1))?if?i<len(S1)]fig=plt.figure(figsize=(13.44*2,7.5*2),facecolor='w')#建立一個坐標系,projection='polar'表示極坐標
ax?=?fig.add_subplot(111,projection='polar',facecolor='w')
ax.scatter(x=x1,y=y1,s=S1,color='Gold',alpha=0.5,linewidths=0)
ax.scatter(x=x2,y=y2,s=S2,color='Orange',alpha=0.5,linewidths=0)
ax.bar(x=x1,?height=H1,?width=W1,bottom=B,color='Salmon')plt.ylim(0,220)
#去掉坐標軸的為外面一層粗的線
ax.spines['polar'].set_visible(False)
plt.grid(color='gray',?linestyle=':',?linewidth=1,which='major',axis='x',alpha=0.1)
ax.set_yticks([])
ax.tick_params(axis='x',labelsize=0)font=matplotlib.font_manager.FontProperties(fname=r'E:\project\wordcloud\simfang.ttf')for?i?in?range(len(x1)):ax.text(x=x1[i],y=y1[i],s=S1[i],color='gray',ha='center',?va=?'center',fontsize=12,fontproperties=font)
for?i?in?range(len(x1)):ax.text(x=x1[i],y=y2[i],s=S2[i],color='gray',ha='center',?va=?'center',fontsize=12,fontproperties=font)
for?i?in?range(len(x1)):ax.text(x=x1[i],y=H1[i]+40,s="{}‰".format(H1[i]*2)?,color='gray',ha='center',?va=?'center',fontsize=12,fontproperties=font)plt.show()
fig.savefig('D:\\test.png',dpi=400,bbox_inches='tight',transparent=False)

最后,通過軟件處理,添加一些文字性的描述,即可獲得一張好看的可視化氣泡圖。覺得好看,大家也可以動手操作一遍!

640?wx_fmt=jpeg

關于用Python畫一張好看的氣泡圖,就到此結束!


四、題外話:為什么窮人更愛買彩票?


來源:飛碟說


在我看來,主要是對概率的認知偏差,他們只有一種理念,就是多買少買,多少要買;早中晚中,早晚要中。但富人由于接受了更好的教育和訓練,更容易通過邏輯思考來避開這些概率認知錯誤。對概率的估算越客觀,對這種負回報率的彩票投資就越少。同時,因為窮人擁有的一夜暴富的機會實在是不多,碰上了就會更珍惜。


福利彩票其本質是一種轉移支付,目的是促進社會平等。理想狀況下,應該讓富人買彩票來補貼窮人。但由于窮人對一夜暴富的渴望以及對概率認知的偏差,反倒成了窮人買彩票來補貼富人。這真是本末倒置。


最終形成,讓一部分先富起來,另一部分人讓這部分人變得越來越富!



我們上周2抽獎活動,第5次贈書,無套路包郵送14本書,趕緊來!中獎如下:SunJ3t,山幾, 狼人

我們周日Python專欄活動,12人抽8個獎品(2個星球碼,4本書,2個68元閱讀碼)中獎如下:二哥,Jason,老忽,一二三四五, 丹楓無跡,Vi,風信子,youn。


恭喜上面11 位,謝謝各位支持,后期給大家帶來更多福利。


640?wx_fmt=jpeg

加入我們和160+小伙伴一起學Python

往期閱讀

640?wx_fmt=jpeg

珍藏已久的學習腦圖

640?wx_fmt=jpeg

濤哥讀者交流群

https://www.nshth.com/python/313058.html
>

相关文章:

  • magic2前置攝像頭,物體移出鏡頭外出現ui提示
  • w兩個世界第二季,TwoC#第二季
  • bgp router id作用,超詳細解讀OSPF Router-ID
  • nintendo賬號登錄,Nintendo帳戶,用戶ID和網絡ID:Nintendo所有令人困惑的帳戶,說明
  • 學習網絡ID的計算
  • 不怕事,網站上線要做的事和不該做的事,你知道嗎?
  • wordpress默認主題,wordpress主題_40個免費和高質量的WordPress主題(2017)
  • 鼠標滑過顯示圖片大圖效果
  • docker配置文件,Docker常用命令使用詳解(docker help、version、info、images)(一)
  • 攝像頭成像原理示意圖,圖像成像模型
  • 《Python編程從入門到實踐》袁國忠 譯 P1~P200學習筆記
  • 6ra80優化步驟,阿木p200四旋翼配置經驗筆記
  • 廣告制作合同模板免費,合約廣告
  • 360瀏覽器開發者工具,體驗 Chrome 開發者工具的 12個騷操作!
  • 開發者工具下載,Chrome 開發者工具各種騷技巧
  • ftp傳輸文件命令,在linux系統,用FTP工具下載文件
  • pomxml標紅,idea的pom.xml文件圖標是黃色而不是藍色
  • docker 基礎鏡像,詳解docker鏡像管理命令
  • docker鏡像列表,【docker專欄5】詳解docker鏡像管理命令
  • qt表格控件,Qt 表格導出數據為 excel html csv
  • 應用程序右下角有個盾牌,如何去除任務欄右下角的紅色盾牌圖表
  • 杯中酒空醉古今,酒至數杯 天空軟件下載
  • python導入數據集,python獲取Q群的信息數據100%用得到【已開源】
  • the apple pie,As American as apple pie 美國特色
  • 輸入學生人數和學生成績計算,統計學生平均成績與及格人數(PTA)
  • 查詢計算機系學生的總人數,統計專業人數。本題要求實現一個函數,統計學生學號鏈表中專業為計算機的學生人數。
  • 數學與統計專業就業前景,6-3 統計專業人數 (15 分)
  • C語言統計各年齡段人數,PTA: 統計專業人數 (15分)(C語言)
  • 幼兒教育理論筆記,Android屏幕適配 - 屏幕基礎理論知識筆記;res資源文件命名與匹配規則
  • 量子化學公社,量子化學計算(Gausssian)圖形工作站硬件方案