數字黑洞:python-matplotlib來實現可視化

2020-10-09 易三一世

1 說明

=====

1.1 2020年諾貝爾生物理學獎獲得者:

英國科學家羅傑·彭羅斯(Roger Penrose),因他發現黑洞的形成是廣義相對論的一個預言;

德國科學家萊因哈德·根澤爾(Reinhard Genzel)&

美國女科學家安德烈亞·蓋茲(Andrea Ghez),因他們發現銀河系中心的超大質量緻密天體。

1.2 數字黑洞與python-matplotlib可視化

==============================

1.2.1 數字黑洞:

無論怎樣數值,在規定的處理法則下,最終都將得到固定的一個值,再也跳不出去了,

就像宇宙中的黑洞可以將任何物質,以及運行速度最快的光牢牢吸住,不使它們逃脫一樣。

1.2.2 看似無聊,但是數學是宇宙中一切的基礎。

1.2.3 一個有意思的數字遊戲,即:輸入一個非0的自然數,

若為奇數則*3-1;若是偶數則/2,並且得到的自然數繼續進行這樣的運算,到1則停止

(會導致最後五個數值都是:1回落)特點在於:

不論輸入什麼自然數(0除外),最終的結果都是1,就像黑洞一樣,無論什麼數字都無法逃脫。

1.2.4 python-matplotlib可視化來看看效果:

pic1:n=2341(完整版)

pic2:n=2341(後10個數回落)

pic3:n=481359246(完整版)

pic4:n=481359246(後十位數值)

規律:最後10個數值:13-40-20-10-5-16-8-4-2-1

pic5:輸入n為個位數1~6的情況

2 matplotlib代碼

============

2.1 基礎代碼1:

來自這篇文章

https://blog.csdn.net/suoper/article/details/80896324?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.add_param_isCf

def black(number): if number>1: if number%2==0: number=number/2 else: number=number*3+1 return numberprint('---You can input 0 to stop program---')while True: n=int(input('----please input a number which you want to show:')) if n==0: print('----math black hole program have been stopped----') break while n>1: n=black(n) print(n)

2.2 完整版matplotlib可視化代碼2:

#導入模塊可視化用import matplotlib.pyplot as plt#定一個空列表,存放數值num_data=[]#數字黑洞函數def black(number): if number>1: if number%2==0: number=number/2 else: number=number*3+1 return number#定義主函數def main(): n=int(input('請輸入非0任意整數:')) plt.title('輸入的數字是:'+str(n)) while n>1: n=black(n) num_data.append(n) #產生x坐標的升序列表 x=[i for i in range(len(num_data))] #y坐標軸數值來自數字黑洞數值 y=num_data #作圖line但有點 plt.plot(x,y,marker='o') plt.show()main()

2.3 後10位數字黑洞數值的可視化代碼3:

#導出模塊import matplotlib.pyplot as plt#定義空列表存放數字黑洞的數值num_data=[]#數字黑洞函數def black(number): if number>1: if number%2==0: number=number/2 else: number=number*3+1 return number#主函數def main(): n=int(input('請輸入非0任意整數:')) plt.title('輸入的數字是:'+str(n)) while n>1: n=black(n) num_data.append(n) #取10個數:0~9坐標x坐標軸坐標值 x=[i for i in range(10)] #從數字黑洞num_data中切片,取值該列表的後10位作為y坐標值 y=num_data[(len(num_data)-10):len(num_data):1] plt.plot(x,y,'r',marker='o') #數值標註 for xy in zip(x, y): plt.annotate("(%s,%s)" % xy, xy=xy, xytext=(-20, 10), textcoords='offset points') plt.show()main()

3 當然數字黑洞還有很多,上面只是其中一個方法,最終回落1,就像宇宙中的黑洞存在。

相關焦點

  • matplotlib的Python數據可視化和探索——入門指南
    matplotlib——最受歡迎的Python庫,用於數據可視化和探索我喜歡在Python中使用matplotlib。這是我學會掌握的第一個可視化庫,此後一直存在。matplotlib是最受歡迎的用於數據可視化和探索的Python庫,這是有原因的——它提供的靈活性和敏捷性是無與倫比的!
  • Python數據可視化技能提升—用好matplotlib第1篇
    好啦,既然有朋友提出需要來啦,那今天咱們就聊點Python數據可視化相關的東東吧,說到Python的數據可視化呢,就必須提Python的一個庫哦,它就是大名鼎鼎的matplotlib庫,也是目前用得最多的Python數據可視化庫哦,matplotlib其實把MatLab的很多優點都借鑑了過來,所以呢,熟悉MatLab的朋友,對於matplotlib是上手很快的哦!
  • 手把手教你用Matplotlib進行數據可視化
    http://matplotlib.org就像我們用縮寫np來表示NumPy一樣,我們也會用一些標準的縮寫來表示Matplotlib導入:import matplotlib as mpl   import matplotlib.pyplot as plt plt是我們最常用的一個接口。
  • 提高編程能力:Python數據可視化技能提升——好matplotlib第2篇
    上次已經和大家聊了Python數據可視化的經典庫:matplotlib,大家已經知道啦,matplotlib庫是Python中用於繪製二維、三維等這些圖表的數據可視化工具,並且已經和大家聊完了關於matplotlib庫的安裝啦、還有matplotlib庫的兩個函數,分別是plot()函數和scatter()函數哦,相信大家已經對於這兩個函數的用法掌握啦,在這就不多說了哈,如果還想繼續了解
  • 使用Matplotlib可視化數據的5個強大技巧
    數據可視化用於以更直接的表示方式顯示數據,並且更易於理解。它可以用柱狀圖、散點圖、折線圖、餅圖等形式形成。許多人仍然使用Matplotlib作為後端模塊來可視化他們的圖形。在這個故事中,我將給你一些技巧,使用Matplotlib創建一個優秀圖表的5個強大技巧。1.
  • 50種常用的matplotlib可視化,再也不用擔心模型背著我亂跑了
    機器之心報導參與:思源數據分析與機器學習中常需要大量的可視化,因此才能直觀了解模型背地裡都幹了些什麼。而在可視化中,matplotlib 算得上是最常用的工具,不論是對數據有個預先的整體了解,還是可視化預測效果,matplotlib 都是不可缺失的模塊。
  • 如何用matplotlib繪圖呢?
    什麼是matplotlib?使用過python做數據分析的小夥伴都知道,matplotlib是一款命令式、較底層、可定製性強、圖表資源豐富、簡單易用、出版質量級別的python 2D繪圖庫。matplotlib算是python繪圖的元老級庫,類似程式語言裡的C語言。很多其它的python繪圖庫是基於matplotlib開發的,比如seaborn、ggplot、plotnine、holoviews、basemap等。matplotlib可用於python腳本、python shell、jupyter notebook、web等。
  • python matplotlib畫圖教程學習:使用介紹
    本篇文章介紹matplotlib包使用時,需要掌握的一些基本概念。下圖顯示了matplotlib圖形的基本構成部分,如figure(圖形)、axes(子圖形)、title(標題)、legend(圖例)、Major tick(大標尺刻度)、Minor tick(小標尺刻度)、Major tick label(大標尺刻度數值)、Minor tick label(小標尺刻度數值)、Y axis label(y軸指標說明)、X axis label(x軸指標說明)、Line
  • 看了這個總結,其實 Matplotlib 可視化,也沒那麼難!
    作者 | 舊時晚風拂曉城 來源 | 傑哥的IT之旅(ID:Jake_Internet)頭圖 | CSDN 下載自東方IC公眾號「傑哥的IT之旅」後臺回覆:「matplotlib數據可視化」,獲取本文完整數據集。Python 中可以通過 matplotlib 模塊的 pyplot 子庫來完成繪圖。
  • 見識matplotlib:不常見的一面,折線圖!
    眾所周知,matplotlib是python繪圖的基礎包,能夠生成各種各樣2D或者3D的圖形,用法算是多而全的那種,下邊是matplotlib官網首頁作為例子的幾張圖,大家感受一下:什麼?醜拒?不不不,別激動!其實matplotlib一直是一個低調奢華有內涵的包,需要我們透過它樸實無華的外表認清它豐富多彩的內在,來康康這條妖嬈的曲線,有沒有感受到它的召喚?
  • 超硬核的 Python 數據可視化教程!
    Python實現可視化的三個步驟:確定問題,選擇圖形 轉換數據,應用函數 參數設置,一目了然 1、首先,要知道我們用哪些庫來畫圖?matplotlibpython中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,然後開始做縱向與橫向拓展。
  • PyCharm安裝matplotlib教程——安裝好matplotlib但是import報錯
    輸入python -m pip install -U pip setuptools2.輸入python -m pip install matplotlib3.檢查是否已經安裝成功。輸入python -m pip list成功安裝。默認安裝在D:\Python\Lib\site-packages方式二:通過下載matplotlib進行安裝。
  • Python 繪圖庫 Matplotlib 入門教程
    筆者推薦大家通過pip的方式進行安裝,具體方法如下:sudo pip3 install matplotlib本文的代碼在如下環境中測試:Apple OS X 10.13Python 3.6.3matplotlib 2.1.1
  • Python模塊NumPy,Pandas,matplotlib的中文文檔
    今天比較忙所以不能寫長文了作為一名數據工程師需要熟練掌握python中的這些numpy,matplotlib,pandas,sklearn,seaborn,statsmodel.模塊但是由於這些模塊的文檔都是英文的可能一些英文不好的同學學起來會比較的困難,所以我從網上給大家找到一些中文的文檔
  • 有這5小段代碼在手,輕鬆實現數據可視化(Python+Matplotlib)
    大數據文摘作品編譯:傅一洋、吳雙、龍牧雪本文要講的是Matplotlib,一個強大的Python可視化庫。一共5小段代碼,輕鬆實現散點圖、折線圖、直方圖、柱狀圖、箱線圖,每段代碼只有10行,也是再簡單不過了吧!數據可視化是數據科學家工作的一項主要任務。
  • 30分鐘入門 Matplotlib 繪圖
    數據可視化是數據分析的重要環節,藉助圖形能夠幫助更加直觀地表達出數據背後的」東西」。Matplolib最初主要模仿Matlab的畫圖命令,但是它是獨立於Matlab的,可以自由、免費使用的繪圖包。Matplotlib依賴於之前介紹的Numpy庫來提供出色的繪圖能力。
  • Python 繪圖,我只用 Matplotlib
    示例:顯示y=2x+1的圖形Matplotlib中最基礎的模塊是Pyplot, 下面從最簡單的線圖開始講解。例如,有一組數據,還有一個擬合模型,通過編寫代碼來實現數據與模型結果的可視化。假設一個線性函數具有形式y=ax+b, 自變量是x,因變量是y,y軸截距為b,斜率為a。
  • Matplotlib新版本3.1發布,新功能介紹
    都需要使用python Framework構建才能工作。如果其中任何一個為True,則數字將由$signs封裝。在使用TeX時,該設置導致數字會以TeX的數學字體顯示。使用mathtext時,數字周圍的$符號將確保unicode呈現。這回保證使用mathtext時減號被渲染為unicode=minus (U+2212)。
  • Python語言中使用pyqtgraph庫實現數據可視化
    背景在Python程式語言中,matplotlib是一種常用的用於數據可視化的繪圖庫,它提供了一套和matlab相似的命令API,開發者可以僅需幾行代碼,便可生成如直方圖,功率譜,條形圖,錯誤圖,散點圖等圖形,適用於交互式繪圖,而且也可以方便地將它作為繪圖控制項嵌入到GUI應用程式中
  • 使用Matplotlib繪製堆積條形圖
    就像任何可視化一樣,條形圖也有一些缺點,例如它們的可伸縮性較差。條形圖太多會使人感到難以閱讀,尤其是在當我們處理層次化的類別,也就是當我們有需要可視化的組和子組時,這個問題更常見。在這種情況下,堆積條形圖是一個很好的選擇,它讓我們能更好地比較和分析數據。在本文中,我們將探討如何使用Python的Matplotlib構建這些可視化圖形。