最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pycharm中安裝Pygal并使用Pygal模擬擲骰子(推薦)

 更新時間:2020年04月08日 15:41:20   作者:zjz-ouni  
這篇文章主要介紹了Pycharm中安裝Pygal并使用Pygal模擬擲骰子,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

使用Python可視化Pygal包來生成可縮放的矢量圖形文件!

對于在尺寸不同的屏幕上顯示圖標,它們將自動縮放以適合觀看者的屏幕,如果以在線的方式使用圖標,建議使用Pygal來生成,這樣在任何設(shè)備上顯示都會很美觀?。?!

1、安裝Pygal

安裝Pygal有好幾種辦法這邊簡略帶過?。。?/p>

介紹一種在pycharm中直接安裝的方法!

1、在File文件中打開Settings

在這里插入圖片描述

2、找到Project:untitled打開Projiect lnterpreter右上方的+號

在這里插入圖片描述

3、輸入我們要安裝的Pygal包,選中Specify version,點擊左下方Install Package,出現(xiàn)綠色顯示安裝完成

在這里插入圖片描述

4、查詢下是否安裝完成,在pycharm下方找到Terminal,并輸入pip list,這時候我們查看到Pygal安裝完成2.4.0版本。

在這里插入圖片描述

2、Pypal畫廊

了解使用Pygal可創(chuàng)建什么樣的圖標,可訪問官網(wǎng)http://www.pygal.org/單擊Documentation,再單擊Chart types

3、創(chuàng)建Die類

下面的類模擬擲一個骰子:

創(chuàng)建die.py文件

from random import randint

class Die():
 """表示一個骰子的類"""

 def __init__(self, num_sides=6):  #_init_()接受一個可選參數(shù),如果沒有指定任何實參,面數(shù)默認為6
  """骰子默認為六面"""
  self.num_sides = num_sides

 def roll(self):      #方法roll()使用randint()來返回
  """返回一個位于1和骰子面熟之間的隨機值"""
  return randint(1,self.num_sides)

4、擲骰子

使用Die類來擲骰子,將結(jié)果打印

新建一個die_visual.py文件

from matp.touzi.die import Die

#創(chuàng)建一個Die實例
die=Die()

#擲幾次骰子,并將結(jié)果存儲在一個列表中
results=[]
for roll_num in range(100):
 result=die.roll()
 results.append(result)

print(results)

 通過對列表的打印,我們可以的下列結(jié)果集:

在這里插入圖片描述

在效果圖中我們可以看出,并未出現(xiàn)0和7的值所有結(jié)果有效

5、分析結(jié)果

在上述代碼中,我們得到了骰子所有可能的列表,現(xiàn)在我們需要分析每個點出現(xiàn)的次數(shù):

在die_visual.py文件添加修改:

from matp.touzi.die import Die

#創(chuàng)建一個Die實例
die=Die()

#擲幾次骰子,并將結(jié)果存儲在一個列表中
results=[]
for roll_num in range(1000):
 result=die.roll()
 results.append(result)

#分析結(jié)果
frequencies=[]
for value in range(1,die.num_sides+1):
 frequency=results.count(value)
 frequencies.append(frequency)

print(frequencies)
#print(results)

 這邊我們將擲骰子的次數(shù)增加到1000,同時創(chuàng)建了空列表frequencies,用來存儲每個點出現(xiàn)的次數(shù),再把值附加到frequencies末尾,我們將其效果打印,如下圖所示:

在這里插入圖片描述

6、繪制直方圖

有了每個點數(shù)的次數(shù)列表之后,我們就可以繪制一個表示結(jié)果的直方圖

在die_visual.py文件添加:

#對結(jié)果進行可視化
hist=pygal.Bar()  #創(chuàng)建一個實例,并將其儲存在hist中

hist.title="Result of rolling one D6 1000 times."  #hist標題
hist.x_labels=['1','2','3','4','5','6']
hist.x_title="Result"
hist.y_title="Frequency of Result"

hist.add('D6',frequencies)   #將一系列值添加到圖標中
hist.render_to_file('die_visual.svg')  #將圖標渲染為一個svg文件

 找到文件的地址,用瀏覽器打開die_visual.svg文件效果圖如下所示:

在這里插入圖片描述

7、同時擲兩個骰子

前6點都是擲1個骰子,現(xiàn)在我們試著嘗試同時擲兩個骰子

我們只需對上面的die_visual.py文件進行修改即可,這邊我們把die_visual.py文件復(fù)制一遍取一個新的文件名dice_visual.py,在dice_visual.py文件中進行修改。

from matp.touzi.die import Die
import pygal

#創(chuàng)建兩個D6骰子
die_1=Die()
die_2=Die()

#擲幾次骰子,并將結(jié)果存儲在一個列表中
results=[]
for roll_num in range(1000):
 result=die_1.roll()+die_2.roll()
 results.append(result)

#分析結(jié)果
frequencies=[]
max_result=die_1.num_sides+die_2.num_sides
for value in range(1,max_result+1):
 frequency=results.count(value)
 frequencies.append(frequency)

#對結(jié)果進行可視化
hist=pygal.Bar()  #創(chuàng)建一個實例,并將其儲存在hist中

hist.title="Result of rolling two D6 1000 times."  #hist標題
hist.x_labels=['2','3','4','5','6','7','8','9','10','11','12']
hist.x_title="Result"
hist.y_title="Frequency of Result"

hist.add('D6+D6',frequencies)   #將一系列值添加到圖標中
hist.render_to_file('dice_visual.svg')  #將圖標渲染為一個svg文件
#print(frequencies)
#print(results)

max_result=die_1.num_sides+die_2.num_sides

兩個點數(shù)相加最大之和12,存儲在max_result當中

效果圖如下:

在這里插入圖片描述

8、同時擲兩個面數(shù)不同的骰子

上述第7點中擲的是兩個相同的D6骰子,現(xiàn)實我們嘗試著操作兩個不同面得的骰子,擲這兩個骰子50000次的結(jié)果如何。

新建different_dice.py文件

**from matp.touzi.die import Die
import pygal

#創(chuàng)建一個D6骰子和D10骰子
die_1=Die()
die_2=Die(10)		#傳遞了第二個骰子實參為10

#擲幾次骰子,并將結(jié)果存儲在一個列表中
results=[]
for roll_num in range(50000):
 result=die_1.roll()+die_2.roll()
 results.append(result)

#分析結(jié)果
frequencies=[]
max_result=die_1.num_sides+die_2.num_sides
for value in range(1,max_result+1):
 frequency=results.count(value)
 frequencies.append(frequency)

#對結(jié)果進行可視化
hist=pygal.Bar()  #創(chuàng)建一個實例,并將其儲存在hist中

hist.title="Result of rolling a D6 and a D10 50000 times."  #hist標題
hist.x_labels=['2','3','4','5','6','7','8','9','10','11','12','13','14','15','16']
hist.x_title="Result"
hist.y_title="Frequency of Result"

hist.add('D6+D10',frequencies)   #將一系列值添加到圖標中
hist.render_to_file('different_dice.svg')  #將圖標渲染為一個svg文件
#print(frequencies)
#print(results)**

效果圖如下:

在這里插入圖片描述

綜上模擬擲骰子完畢!?。?/p>

附上完整的die.py和die_visual.py和dice_visual.py和different_dice.py文件

die.py

from random import randint

class Die():
 """表示一個骰子的類"""

 def __init__(self, num_sides=6):  #_init_()接受一個可選參數(shù),如果沒有指定任何實參,面數(shù)默認為6
  """骰子默認為六面"""
  self.num_sides = num_sides

 def roll(self):      #方法roll()使用randint()來返回
  """返回一個位于1和骰子面熟之間的隨機值"""
  return randint(1,self.num_sides)

die_visual.py

from matp.touzi.die import Die
import pygal
#創(chuàng)建一個Die實例
die=Die()

#擲幾次骰子,并將結(jié)果存儲在一個列表中
results=[]
for roll_num in range(1000):
 result=die.roll()
 results.append(result)

#分析結(jié)果
frequencies=[]
for value in range(1,die.num_sides+1):
 frequency=results.count(value)
 frequencies.append(frequency)

#對結(jié)果進行可視化
hist=pygal.Bar()  #創(chuàng)建一個實例,并將其儲存在hist中

hist.title="Result of rolling one D6 1000 times."  #hist標題
hist.x_labels=['1','2','3','4','5','6']
hist.x_title="Result"
hist.y_title="Frequency of Result"

hist.add('D6',frequencies)   #將一系列值添加到圖標中
hist.render_to_file('die_visual.svg')  #將圖標渲染為一個svg文件
#print(frequencies)
#print(results)

dice_visual.py

from matp.touzi.die import Die
import pygal

#創(chuàng)建兩個D6骰子
die_1=Die()
die_2=Die()

#擲幾次骰子,并將結(jié)果存儲在一個列表中
results=[]
for roll_num in range(1000):
 result=die_1.roll()+die_2.roll()
 results.append(result)

#分析結(jié)果
frequencies=[]
max_result=die_1.num_sides+die_2.num_sides
for value in range(1,max_result+1):
 frequency=results.count(value)
 frequencies.append(frequency)

#對結(jié)果進行可視化
hist=pygal.Bar()  #創(chuàng)建一個實例,并將其儲存在hist中

hist.title="Result of rolling two D6 1000 times."  #hist標題
hist.x_labels=['2','3','4','5','6','7','8','9','10','11','12']
hist.x_title="Result"
hist.y_title="Frequency of Result"

hist.add('D6+D6',frequencies)   #將一系列值添加到圖標中
hist.render_to_file('dice_visual.svg')  #將圖標渲染為一個svg文件
#print(frequencies)
#print(results)

different_dice.py

from matp.touzi.die import Die
import pygal

#創(chuàng)建一個D6骰子和D10骰子
die_1=Die()
die_2=Die(10)

#擲幾次骰子,并將結(jié)果存儲在一個列表中
results=[]
for roll_num in range(50000):
 result=die_1.roll()+die_2.roll()
 results.append(result)

#分析結(jié)果
frequencies=[]
max_result=die_1.num_sides+die_2.num_sides
for value in range(1,max_result+1):
 frequency=results.count(value)
 frequencies.append(frequency)

#對結(jié)果進行可視化
hist=pygal.Bar()  #創(chuàng)建一個實例,并將其儲存在hist中

hist.title="Result of rolling a D6 and a D10 50000 times."  #hist標題
hist.x_labels=['2','3','4','5','6','7','8','9','10','11','12','13','14','15','16']
hist.x_title="Result"
hist.y_title="Frequency of Result"

hist.add('D6+D10',frequencies)   #將一系列值添加到圖標中
hist.render_to_file('different_dice.svg')  #將圖標渲染為一個svg文件
#print(frequencies)
#print(results)

總結(jié)

到此這篇關(guān)于Pycharm中安裝Pygal并使用Pygal模擬擲骰子的文章就介紹到這了,更多相關(guān)Pycharm安裝Pygal模擬擲骰子內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python的類方法和靜態(tài)方法

    python的類方法和靜態(tài)方法

    這篇文章主要介紹了python的類方法和靜態(tài)方法,以實例形式分析了Python中類方法和靜態(tài)方法的實現(xiàn)技巧與應(yīng)用方法,需要的朋友可以參考下
    2014-12-12
  • python進階_淺談面向?qū)ο筮M階

    python進階_淺談面向?qū)ο筮M階

    下面小編就為大家?guī)硪黄猵ython進階_淺談面向?qū)ο筮M階。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Python?multiprocessing?共享對象的示例代碼

    Python?multiprocessing?共享對象的示例代碼

    在 Python 中使用 multiprocessing,一個新的進程可以獨立運行并擁有自己的內(nèi)存空間,下面通過示例代碼講解Python multiprocessing共享對象的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • django之跨表查詢及添加記錄的示例代碼

    django之跨表查詢及添加記錄的示例代碼

    表查詢是重要的操作。這篇文章主要介紹了django之跨表查詢及添加記錄的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 最新評論

    卫辉市| 苏尼特右旗| 汾西县| 屏山县| 塔城市| 高尔夫| 上栗县| 平阳县| 临夏市| 米林县| 佛教| 郎溪县| 鹤峰县| 伊川县| 周至县| 左云县| 望城县| 文昌市| 筠连县| 松江区| 宣武区| 始兴县| 和林格尔县| 奉新县| 新密市| 建湖县| 巴东县| 安乡县| 西城区| 武安市| 科技| 收藏| 上犹县| 绵竹市| 滦南县| 东平县| 深水埗区| 宜兰县| 格尔木市| 女性| 吉安市|