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

Python利用隨機(jī)函數(shù)生成變化圖形詳解

 更新時(shí)間:2022年04月26日 11:08:01   作者:PursuitingPeak  
這篇文章主要介紹了如何在Python中利用隨機(jī)函數(shù)生成變化的圖形,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定吧參考價(jià)值,需要的可以了解一下

鑒于上一篇中最后三個(gè)問題:

1、上述程序是否能進(jìn)行優(yōu)化(比如功能相同的)

2、創(chuàng)建三個(gè)3個(gè)實(shí)例,用了3個(gè)語句,能否建一個(gè)函數(shù),只輸入一個(gè)數(shù)n,就自動(dòng)創(chuàng)建n個(gè)實(shí)例?同時(shí),每個(gè)實(shí)例的num_times隨機(jī),(n比較大時(shí),num_times應(yīng)該比較小)

3、當(dāng)實(shí)現(xiàn)上述功能后,程序運(yùn)行,只輸入一個(gè)參數(shù)(創(chuàng)建實(shí)例的個(gè)數(shù)),就會(huì)自動(dòng)生成對(duì)應(yīng)的num_times,并分別調(diào)用相關(guān)函數(shù)生成對(duì)應(yīng)圖表。

可以,在類Rand_moving()中計(jì)算每一步的方向和移動(dòng)位置時(shí),都用到了一個(gè)乘法公式,

x_direction = choice([1,-1])       #x的移動(dòng)方向,1向上,0不變,-1向下
            x_distance = choice([0,1,2,3,4,5]) #x的每次移動(dòng)的像素,
            x_step = x_direction*x_distance    #移動(dòng)方向乘以移動(dòng)距離,以確定沿x移動(dòng)的距離
            
            y_direction =  choice([1,-1])      #y的移動(dòng)方向,1向上,0不變,-1向下
            y_distance = choice([0,1,2,3,4,5]) #y的每次移動(dòng)的像素,
            y_step = y_direction*y_distance    #移動(dòng)方向乘以移動(dòng)距離,以確定沿y移動(dòng)的距離

因此可以整理出一個(gè)計(jì)算方法,可以直接調(diào)用,至于2,3很明顯,也是可以完成的。

第一步,將乘法公式提出來單獨(dú)形成一個(gè)作用于自身的方法,代碼如下:

def get_step(self,direction,distance):
          return distance*direction
        
    def fill_moving(self):
        while len(self.x_values)<self.num_times:#循環(huán)不斷運(yùn)行,直到漫步包含所需數(shù)量的點(diǎn)num_times
            x_step = self.get_step(choice([1,-1]),choice([0,1,2,3,4,5]))     #直接調(diào)用get_step方法,使代碼更加簡潔
            y_step = self.get_step(choice([1,-1]),choice([0,1,2,3,4,5]))

完成第1問,代碼變得更加簡潔明了。

第2、3個(gè)問題:

1)要能生成實(shí)例個(gè)數(shù)n,且還有對(duì)應(yīng)的移動(dòng)次數(shù)num_times,可考慮用字典,即實(shí)例個(gè)數(shù)為key,對(duì)應(yīng)移動(dòng)次數(shù)num_times為鍵值,當(dāng)輸入2時(shí),如  caselist={’1‘:'150000',’2‘:'250000'}

2)讀取字典每個(gè)項(xiàng)目,將對(duì)應(yīng)的key和value傳遞給由Rand_moving類創(chuàng)建的實(shí)例,key的個(gè)數(shù)即為需要?jiǎng)?chuàng)建實(shí)例的個(gè)數(shù),對(duì)應(yīng)的value值為移動(dòng)次數(shù)。

3)輸入數(shù)字,即為字典key的個(gè)數(shù),存入字典,同時(shí)利用隨機(jī)函數(shù)生成一個(gè)num_times保存到對(duì)應(yīng)的value中。

完成思路:

1,重新定義一個(gè)類 New_case() 作用:接收一個(gè)數(shù)據(jù),并根據(jù)這個(gè)數(shù)據(jù)自動(dòng)生成一個(gè)字典,

class New_case():
    #定義New_case類
    def __init__(self,numbers): #定義要?jiǎng)?chuàng)建的實(shí)例個(gè)數(shù)        
        self.numbers=numbers     
        self.caselist={}  #定義一個(gè)空的caselist字典
        self.case = 0       
       while self.case < self.numbers: #當(dāng)變量case小于給定值時(shí),
            self.case += 1
            times = choice([100000,150000,200000,250000])#隨機(jī)選擇一個(gè)移動(dòng)次數(shù)
            self.caselist[self.case] = times  #將value與key對(duì)應(yīng)

2、需要循環(huán)讀取字典的key和value,并將value傳遞給類Rand_moving,隨后再運(yùn)行fill_moving()生成數(shù)據(jù)并保存到列表,隨即用plt.scatter()進(jìn)行繪圖

for key,value in self.caselist.items(): #字典不為空
            colorkey=str(key)        #  將字典關(guān)鍵字轉(zhuǎn)為字符串存到變量colorkey中
            examplecase = Rand_moving(int(value))  #創(chuàng)建實(shí)例,將對(duì)應(yīng)的value值傳遞類Rand_moving
            examplecase.fill_moving()  #調(diào)用類Rand_moving中的方法fill_moving()計(jì)算移動(dòng)相關(guān)數(shù)據(jù)并保存到列表中
            plt.figure(dpi=128,figsize=(12, 10))   #創(chuàng)建畫面屏幕          
            plt.scatter(examplecase.x_values,examplecase.y_values,c=self.colors[colorkey],s=15)
        plt.show()

上篇中的代碼  c=y_values, cmap=plt.cm.Reds為什么這里不再用,是因?yàn)檫@里循環(huán)的時(shí)候一直出現(xiàn)紅色Reds,為了對(duì)比,創(chuàng)建了一新字典colors{},將生成的個(gè)數(shù)與顏色相對(duì)應(yīng)。所以上述代碼中修改為 c=self.colors[colorkey]

類New_case() 全部代碼如下:

import matplotlib.pyplot as plt

from rand_moving import *

class New_case():
    #定義New_case類
    def __init__(self,numbers): #定義要?jiǎng)?chuàng)建的實(shí)例個(gè)數(shù)        
        self.numbers=numbers     
        self.caselist={}  #定義一個(gè)空的cases列表
        self.case = 0    #定義一個(gè)case變量   
        self.colors={'1':'red','2':'orange','3':'yellow','4':'green','5':'blue','6':'puple'}#創(chuàng)建了一新字典colors{},將生成的個(gè)數(shù)與顏色相對(duì)應(yīng)
        
        while self.case < self.numbers:  #小于給定實(shí)例個(gè)數(shù)時(shí)
            self.case += 1
            times = choice([100000,150000,200000,250000]) #隨機(jī)生成一個(gè)移動(dòng)次數(shù)
            self.caselist[self.case] = times    #將變量case作為key, times作為value保存到字典中      
       
    def case_moving(self):  #重新定義一個(gè)方法,即訪問字典所有項(xiàng)
        for key,value in self.caselist.items(): #字典不為空
            colorkey=str(key)        #  將字典關(guān)鍵字轉(zhuǎn)為字符串存到變量colorkey中
            examplecase = Rand_moving(int(value))  #創(chuàng)建實(shí)例,將對(duì)應(yīng)的value值傳遞類Rand_moving
            examplecase.fill_moving()  #調(diào)用類Rand_moving中的方法fill_moving()計(jì)算移動(dòng)相關(guān)數(shù)據(jù)并保存到列表中
            plt.figure(dpi=128,figsize=(12, 10))   #創(chuàng)建畫面屏幕         
            plt.scatter(examplecase.x_values,examplecase.y_values,c=self.colors[colorkey],s=15)#注意調(diào)用了上述新字典的顏色
        plt.show()

3、主程序

主程序中有一個(gè)交互,需要輸入一個(gè)數(shù)據(jù),然后調(diào)用相關(guān)相關(guān)類創(chuàng)建實(shí)例(慢慢成調(diào)包俠了!^v^)

import matplotlib.pyplot as plt

from rand_moving import *   
from new_case import *

print("Please enter the number:")  #交互,請(qǐng)輸入一個(gè)數(shù),模擬運(yùn)行,不需要太大的數(shù)據(jù)。
n = input()   #將輸入的數(shù)據(jù)保存到變量n中,注意所有輸入均為字符串,

testcase = New_case(int(n)) #將n轉(zhuǎn)為整型數(shù)據(jù),創(chuàng)建實(shí)例個(gè)數(shù) 
testcase.case_moving()

實(shí)際運(yùn)行效果,輸入4,生成4個(gè)數(shù)據(jù)圖形(為展示較全,原圖已縮?。?/p>

self.colors={'1':'red','2':'orange','3':'yellow','4':'green','5':'blue','6':'puple'} 注意:圖的顏色分別與colors字典中對(duì)應(yīng)。

當(dāng)然如果覺得數(shù)軸很礙眼,那就在類類New_case() 中的plt.figure()之后加上

plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False) 

到此這篇關(guān)于Python利用隨機(jī)函數(shù)生成變化圖形詳解的文章就介紹到這了,更多相關(guān)Python隨機(jī)函數(shù)生成變化圖形內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • conda安裝tensorflow和conda常用命令小結(jié)

    conda安裝tensorflow和conda常用命令小結(jié)

    這篇文章主要介紹了conda安裝tensorflow和conda常用命令小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python實(shí)現(xiàn)GB格式序列文件轉(zhuǎn)換Fasta格式文件

    Python實(shí)現(xiàn)GB格式序列文件轉(zhuǎn)換Fasta格式文件

    這篇文章主要為大家介紹了Python實(shí)現(xiàn)GB格式序列文件轉(zhuǎn)換Fasta格式文件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • pycharm2023.1配置python解釋器時(shí)找不到conda環(huán)境解決辦法

    pycharm2023.1配置python解釋器時(shí)找不到conda環(huán)境解決辦法

    如果你已經(jīng)安裝了Anaconda或Miniconda,但是在PyCharm中找不到conda解釋器,可以試試本文介紹的方法,這篇文章主要給大家介紹了關(guān)于pycharm2023.1配置python解釋器時(shí)找不到conda環(huán)境的解決辦法,需要的朋友可以參考下
    2023-12-12
  • 為什么入門大數(shù)據(jù)選擇Python而不是Java?

    為什么入門大數(shù)據(jù)選擇Python而不是Java?

    為什么入門大數(shù)據(jù)選擇Python而不是Java?這篇文章就來談?wù)剬W(xué)習(xí)大數(shù)據(jù)入門語言的選擇,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • python 多進(jìn)程和多線程使用詳解

    python 多進(jìn)程和多線程使用詳解

    這篇文章主要介紹了python 多進(jìn)程和多線程使用詳解,幫助大家更好得理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Dialog 按照順序彈窗的優(yōu)雅寫法

    Dialog 按照順序彈窗的優(yōu)雅寫法

    這篇文章主要介紹了Dialog 按照順序彈窗的寫法及示例,給大家介紹了DrawType的使用方式,需要的朋友可以參考下
    2021-09-09
  • Python使用django獲取用戶IP地址的方法

    Python使用django獲取用戶IP地址的方法

    這篇文章主要介紹了Python使用django獲取用戶IP地址的方法,實(shí)例分析了django獲取用戶IP地址過程中出現(xiàn)的問題與對(duì)應(yīng)的解決方法,非常簡單實(shí)用,需要的朋友可以參考下
    2015-05-05
  • 對(duì)Pytorch中nn.ModuleList 和 nn.Sequential詳解

    對(duì)Pytorch中nn.ModuleList 和 nn.Sequential詳解

    今天小編就為大家分享一篇對(duì)Pytorch中nn.ModuleList 和 nn.Sequential詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python下載ts文件視頻且合并的操作方法

    Python下載ts文件視頻且合并的操作方法

    ts文件,ts即"Transport?Stream"的縮寫,特點(diǎn)就是要求從視頻流的任一片段開始都是可以獨(dú)立解碼的,非常適合網(wǎng)絡(luò)視頻播放,這篇文章主要介紹了Python下載ts文件視頻且合并,需要的朋友可以參考下
    2023-01-01
  • Python實(shí)現(xiàn)蟻群算法

    Python實(shí)現(xiàn)蟻群算法

    本文主要介紹了Python實(shí)現(xiàn)蟻群算法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評(píng)論

炉霍县| 旬邑县| 天祝| 高青县| 双流县| 什邡市| 凤庆县| 嘉义县| 三亚市| 宜川县| 九江市| 大英县| 增城市| 玛多县| 威远县| 光山县| 贵定县| 都匀市| 新安县| 久治县| 萨嘎县| 临桂县| 闵行区| 金湖县| 昌黎县| 平顶山市| 大厂| 凤冈县| 望江县| 富民县| 无极县| 鸡东县| 霞浦县| 修武县| 台东市| 镇宁| 阿拉善盟| 大同县| 鲁山县| 上犹县| 新龙县|