Pythone入門到實踐-學(xué)習(xí)筆記-Day6

第十五章 生成數(shù)據(jù)

一术唬、安裝matplotlib

1傍菇、在https://dev.windows.com下載Visual Studio Community讼载,并安裝
2趴荸、cmd進(jìn)入命令窗口儒溉,輸入:pip install matplotlib回車,進(jìn)入安裝
3发钝、驗證安裝結(jié)果

python
>>>import matplotlib
#沒報錯說明安裝成功

二顿涣、繪制圖表

繪制拆線圖

import matplotlib.pyplot as plt

input_values = [1,2,3,4,5,6]
squares = [1,2,4,9,16]
#根據(jù)squeres繪制圖形,linewidth線條加粗
plt.plot(input_values,squares,linewidth=5)
#設(shè)置標(biāo)題和標(biāo)題字號
plt.title("Squares",fontsize=24)
#x,y坐標(biāo)標(biāo)簽
plt.xlabel('Value')
plt.ylabel('squares of value')

plt.tick_params(axis='both', labelsize=14)
#打開matplotlib查看器
plt.show()
運(yùn)行結(jié)果

繪制拆散點圖

import matplotlib.pyplot as plt

values = list(range(1,1001))
squares = [x**2 for x in values]
#scatter:繪制點
#s=10:點的大小
#c='red'自定義顏色波闹,c=squeres,cmap=plt.cm.Blues漸變
#edgecolor='none':刪除數(shù)據(jù)點的廓
plt.scatter(values,squares,c=squares, cmap=plt.cm.Blues,edgecolor='none',s=10)
plt.title("Squares",fontsize=24)
plt.xlabel('Value')
plt.ylabel('squares of value')
#axis():指定每個坐標(biāo)的取值范圍,分別x和y坐標(biāo)最小值和最大值
plt.axis([0,1100,0,1100000])
#savefig():保存圖表涛碑,第一實參保存路徑和文件名精堕,
#第二個實參將圖表周圍多余的空白區(qū)域剪掉,如果要你保留可省略
plt.savefig('squares.png',bbox_inches='tight')
plt.show()
運(yùn)行結(jié)果

隨機(jī)漫步

import matplotlib.pyplot as plt
from random import choice

class RandomWalk():
    def __init__(self, num_points = 5000):
        self.num_points = num_points
        self.x_values = [0]
        self.y_values = [0]

    def fill_walk(self):
        while len(self.x_values) < self.num_points:
            x_direction = choice([1,-1])
            x_distance = choice([0,1,2,3,4])
            x_step = x_direction * x_distance

            
            y_direction = choice([1,-1])
            y_distance = choice([0,1,2,3,4])
            y_step = y_direction * y_distance

            if x_step == 0 and y_step == 0:
                continue

            next_x = self.x_values[-1] + x_step
            next_y = self.y_values[-1] + y_step

            self.x_values.append(next_x)
            self.y_values.append(next_y)

while True:
    rw = RandomWalk(5000)
    rw.fill_walk()
    #設(shè)置繪圖窗口尺寸
    #figure()用于指定圖表的寬度蒲障、高度(單位英寸)歹篓、分辨率和背景色
    plt.figure(figsize=(10,6))
    num_points = list(range(rw.num_points))    
    plt.scatter(rw.x_values,rw.y_values,c=num_points,cmap=plt.cm.Blues,s=3)
    #使用拆線圖繪制
    #plt.plot(rw.x_values,rw.y_values,linewidth=5)

    #繪制起點和終點
    plt.scatter(0,0,c='green',edgecolors='none',s=100)
    plt.scatter(rw.x_values[-1],rw.y_values[-1],c='red',edgecolors='none',s=100)
    #隱藏坐標(biāo)
    plt.axes().get_xaxis().set_visible(False)
    plt.axes().get_yaxis().set_visible(False)
    plt.show()

    #多次繪制
    keep_running = input('Make another walk?(y/n):')
    if keep_running == 'n':
        break
運(yùn)行結(jié)果

三、使用Pygal模擬擲骰子

Pygal(可視化包)生成可縮放的矢量圖形文件揉阎,可在不同尺寸的屏幕上自動縮放圖表

from random import randint
import pygal

class Die():
    def __init__(self,num_sides = 6):
        self.num_sides = 6
    def roll(self):
        return randint(1,self.num_sides)

die = Die()
results = []
#1000次投擲結(jié)果
for roll_num in range(1000):
    result = die.roll()
    results.append(result)

#分析每個點數(shù)出現(xiàn)次數(shù)
frequencies = []
for value in range(1,die.num_sides+1):
    frequency = results.count(value)
    frequencies.append(frequency)
    
print(frequencies)

#顯示直方圖
hist = pygal.Bar()

hist.title = 'Result of rolling one D6 1000 times'
hist.x_label = [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.svg')
運(yùn)行結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末庄撮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子毙籽,更是在濱河造成了極大的恐慌洞斯,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坑赡,死亡現(xiàn)場離奇詭異烙如,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)毅否,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門亚铁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人螟加,你說我怎么就攤上這事徘溢。” “怎么了仰迁?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵甸昏,是天一觀的道長。 經(jīng)常有香客問我徐许,道長施蜜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任雌隅,我火速辦了婚禮翻默,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恰起。我一直安慰自己修械,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布检盼。 她就那樣靜靜地躺著肯污,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蹦渣,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天哄芜,我揣著相機(jī)與錄音,去河邊找鬼柬唯。 笑死认臊,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锄奢。 我是一名探鬼主播失晴,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拘央!你這毒婦竟也來了涂屁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤堪滨,失蹤者是張志新(化名)和其女友劉穎胯陋,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袱箱,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年义矛,在試婚紗的時候發(fā)現(xiàn)自己被綠了发笔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡凉翻,死狀恐怖了讨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情制轰,我是刑警寧澤前计,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站垃杖,受9級特大地震影響男杈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜调俘,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一伶棒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧彩库,春花似錦肤无、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春窥翩,著一層夾襖步出監(jiān)牢的瞬間业岁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工鳍烁, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留叨襟,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓幔荒,卻偏偏與公主長得像糊闽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子爹梁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容