python強大的作圖工具,python簡單繪圖作品

本文目錄一覽:

用Python畫圖

今天開始琢磨用Python畫圖,沒使用之前是一臉懵的,我使用的開發環境是Pycharm,這個輸出的是一行行命令,這個圖畫在哪裡呢?

搜索之後發現,它會彈出一個對話框,然後就開始畫了,比如下圖

第一個常用的庫是Turtle,它是Python語言中一個很流行的繪製圖像的函數庫,這個詞的意思就是烏龜,你可以想像下一個小烏龜在一個x和y軸的平面坐標系裡,從原點開始根據指令控制,爬行出來就是繪製的圖形了。

  它最常用的指令就是旋轉和移動,比如畫個圓,就是繞著圓心移動;再比如上圖這個怎麼畫呢,其實主要就兩個命令:

turtle.forward(200)

turtle.left(170)

第一個命令是移動200個單位並畫出來軌跡

第二個命令是畫筆順時針轉170度,注意此時並沒有移動,只是轉角度

然後呢? 循環重複就畫出來這個圖了

好玩吧。

有需要仔細研究的可以看下這篇文章 ,這個牛人最後用這個庫畫個移動的鐘錶,太贊了。

Turtle雖好玩,但是我想要的是我給定數據,然後讓它畫圖,這裡就找到另一個常用的畫圖的庫了。

Matplotlib是python最著名的繪圖庫,它提供了一整套和matlab相似的命令API,十分適合互動式地行製圖。其中,matplotlib的pyplot模塊一般是最常用的,可以方便用戶快速繪製二維圖表。

使用起來也挺簡單,

首先import matplotlib.pyplot as plt 導入畫圖的圖。

然後給定x和y,用這個命令plt.plot(x, y)就能畫圖了,接著用plt.show()就可以把圖形展示出來。

接著就是各種完善,比如加標題,設定x軸和y軸標籤,範圍,顏色,網格等等,在 這篇文章里介紹的很詳細。

現在互聯網的好處就是你需要什麼內容,基本上都能搜索出來,而且還是免費的。

我為什麼要研究這個呢?當然是為了用,比如我把比特幣的曲線自己畫出來可好?

假設現在有個數據csv文件,一列是日期,另一列是比特幣的價格,那用這個命令畫下:

這兩列數據讀到pandas中,日期為df[‘time’]列,比特幣價格為df[‘ini’],那我只要使用如下命令

plt.plot(df[‘time’], df[‘ini’])

plt.show()

就能得到如下圖:

自己畫的是不是很香,哈哈!

然後呢,我在上篇文章 中介紹過求Ahr999指數,那可不可以也放到這張圖中呢?不就是加一條命令嘛

plt.plot(df[‘time’], df[‘Ahr999’])

圖形如下:

但是,Ahr999指數怎麼就一條線不動啊, 原來兩個Y軸不一致,顯示出來太怪了,需要用多Y軸,問題來了。

繼續谷歌一下,把第二個Y軸放右邊就行了,不過呢得使用多圖,重新繪製

fig = plt.figure() # 多圖

ax1 = fig.add_subplot(111)

ax1.plot(df[‘time’], df[‘ini’], label=”BTC price”)  # 繪製第一個圖比特幣價格

ax1.set_ylabel(‘BTC price’) # 加上標籤

# 第二個直接對稱就行了

ax2 = ax1.twinx()# 在右邊增加一個Y軸

ax2.plot(df[‘time’], df[‘Ahr999’], ‘r’, label=”ahr999″)  # 繪製第二個圖Ahr999指數,紅色

ax2.set_ylim([0, 50])# 設定第二個Y軸範圍

ax2.set_ylabel(‘ahr999’)

plt.grid(color=”k”, linestyle=”:”)# 網格

fig.legend(loc=”center”)#圖例

plt.show()

跑起來看看效果,雖然丑了點,但終於跑通了。

這樣就可以把所有指數都繪製到一張圖中,等等,三個甚至多個Y軸怎麼加?這又是一個問題,留給愛思考愛學習的你。

有了自己的數據,建立自己的各個指數,然後再放到圖形界面中,同時針對異常情況再自動進行提醒,比如要抄底了,要賣出了,用程序做出自己的晴雨表。

python繪圖包哪個好

Matplotlib。

Matplotlib是著名Python的標配畫圖包,其繪圖函數的名字基本上與 Matlab 的繪圖函數差不多。 優點是曲線精緻,軟體開源免費,支持Latex公式插入,且許多時候只需要一行或幾行代碼就能搞定。

常用的十大python圖像處理工具

原文標題:10 Python image manipulation tools.

作者 | Parul Pandey

翻譯 | 安其羅喬爾、JimmyHua

今天,在我們的世界裡充滿了數據,圖像成為構成這些數據的重要組成部分。但無論是用於何種用途,這些圖像都需要進行處理。圖像處理就是分析和處理數字圖像的過程,主要旨在提高其質量或從中提取一些信息,然後可以將其用於某種用途。

圖像處理中的常見任務包括顯示圖像,基本操作如裁剪、翻轉、旋轉等,圖像分割,分類和特徵提取,圖像恢復和圖像識別。Python成為這種圖像處理任務是一個恰當選擇,這是因為它作為一種科學編程語言正在日益普及,並且在其生態系統中免費提供許多最先進的圖像處理工具供大家使用。

讓我們看一下可以用於圖像處理任務中的常用 Python 庫有哪些吧。

1.scikit-image

scikit-image是一個開源的Python包,適用於numpy數組。它實現了用於研究,教育和工業應用的演算法和實用工具。即使是那些剛接觸Python生態系統的人,它也是一個相當簡單直接的庫。此代碼是由活躍的志願者社區編寫的,具有高質量和同行評審的性質。

資源

文檔里記錄了豐富的例子和實際用例,閱讀下面的文檔:

用法

該包作為skimage導入,大多數功能都在子模塊中找的到。下面列舉一些skimage的例子:

圖像過濾

使用match_template函數進行模板匹配

你可以通過此處查看圖庫找到更多示例。

2. Numpy

Numpy是Python編程的核心庫之一,並為數組提供支持。圖像本質上是包含數據點像素的標準Numpy數組。因此,我們可以通過使用基本的NumPy操作,例如切片、掩膜和花式索引,來修改圖像的像素值。可以使用skimage載入圖像並使用matplotlib顯示圖像。

資源

Numpy的官方文檔頁面提供了完整的資源和文檔列表:

用法

使用Numpy來掩膜圖像.

3.Scipy

scipy是Python的另一個類似Numpy的核心科學模塊,可用於基本的圖像操作和處理任務。特別是子模塊scipy.ndimage,提供了在n維NumPy數組上操作的函數。該包目前包括線性和非線性濾波,二值形態學,B樣條插值和對象測量等功能函數。

資源

有關scipy.ndimage包提供的完整功能列表,請參閱下面的鏈接:

用法

使用SciPy通過高斯濾波器進行模糊:

4. PIL/ Pillow

PIL( Python圖像庫 )是Python編程語言的一個免費庫,它支持打開、操作和保存許多不同的文件格式的圖像。然而, 隨著2009年的最後一次發布,它的開發停滯不前。但幸運的是還有有Pillow,一個PIL積極開發的且更容易安裝的分支,它能運行在所有主要的操作系統,並支持Python3。這個庫包含了基本的圖像處理功能,包括點運算、使用一組內置卷積核的濾波和色彩空間的轉換。

資源

文檔中有安裝說明,以及涵蓋庫的每個模塊的示例:

用法

在 Pillow 中使用 ImageFilter 增強圖像:

5. OpenCV-Python

OpenCV( 開源計算機視覺庫 )是計算機視覺應用中應用最廣泛的庫之一 。OpenCV-Python 是OpenCV的python版API。OpenCV-Python的優點不只有高效,這源於它的內部組成是用C/C++編寫的,而且它還容易編寫和部署(因為前端是用Python包裝的)。這使得它成為執行計算密集型計算機視覺程序的一個很好的選擇。

資源

OpenCV-Python-Guide指南可以讓你使用OpenCV-Python更容易:

用法

下面是一個例子,展示了OpenCV-Python使用金字塔方法創建一個名為「Orapple」的新水果圖像融合的功能。

6. SimpleCV

SimpleCV 也是一個用於構建計算機視覺應用程序的開源框架。有了它,你就可以訪問幾個高性能的計算機視覺庫,如OpenCV,而且不需要先學習了解位深度、文件格式、顏色空間等。

它的學習曲線大大小於OpenCV,正如它們的口號所說「計算機視覺變得簡單」。一些支持SimpleCV的觀點有:

即使是初學者也可以編寫簡單的機器視覺測試攝像機、視頻文件、圖像和視頻流都是可互操作的資源

官方文檔非常容易理解,而且有大量的例子和使用案例去學習:

用法

7. Mahotas

Mahotas 是另一個計算機視覺和圖像處理的Python庫。它包括了傳統的圖像處理功能例如濾波和形態學操作以及更現代的計算機視覺功能用於特徵計算,包括興趣點檢測和局部描述符。該介面是Python語言,適合於快速開發,但是演算法是用C語言實現的,並根據速度進行了調優。Mahotas庫速度快,代碼簡潔,甚至具有最小的依賴性。通過原文閱讀它們的官方論文以獲得更多的了解。

資源

文檔包括安裝指導,例子,以及一些教程,可以更好的幫助你開始使用mahotas。

用法

Mahotas庫依賴於使用簡單的代碼來完成任務。關於『Finding Wally』的問題,Mahotas做的很好並且代碼量很少。下面是源碼:

8. SimpleITK

ITK 或者 Insight Segmentation and Registration Toolkit是一個開源的跨平台系統,為開發人員提供了一套廣泛的圖像分析軟體工具 。其中, SimpleITK是建立在ITK之上的簡化層,旨在促進其在快速原型設計、教育、解釋語言中的應用。SimpleITK 是一個圖像分析工具包,包含大量支持一般過濾操作、圖像分割和匹配的組件。SimpleITK本身是用C++寫的,但是對於包括Python以內的大部分編程語言都是可用的。

資源

大量的Jupyter Notebooks 表明了SimpleITK在教育和研究領域已經被使用。Notebook展示了用Python和R編程語言使用SimpleITK來進行互動式圖像分析。

用法

下面的動畫是用SimpleITK和Python創建的剛性CT/MR匹配過程的可視化 。點擊此處可查看源碼!

9. pgmagick

pgmagick是GraphicsMagick庫的一個基於python的包裝。 GraphicsMagick圖像處理系統有時被稱為圖像處理的瑞士軍刀。它提供了一個具有強大且高效的工具和庫集合,支持以88種主要格式(包括重要格式,如DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF)讀取、寫入和操作圖像。

資源

有一個專門用於PgMagick的Github庫 ,其中包含安裝和需求說明。還有關於這個的一個詳細的用戶指導:

用法

使用pgmagick可以進行的圖像處理活動很少,比如:

圖像縮放

邊緣提取

10. Pycairo

Pycairo是圖像處理庫cairo的一組Python捆綁。Cairo是一個用於繪製矢量圖形的2D圖形庫。矢量圖形很有趣,因為它們在調整大小或轉換時不會失去清晰度 。Pycairo是cairo的一組綁定,可用於從Python調用cairo命令。

資源

Pycairo的GitHub庫是一個很好的資源,有關於安裝和使用的詳細說明。還有一個入門指南,其中有一個關於Pycairo的簡短教程。

庫:指南:用法

使用Pycairo繪製線條、基本形狀和徑向梯度:

總結

有一些有用且免費的Python圖像處理庫可以使用,有的是眾所周知的,有的可能對你來說是新的,試著多去了解它們。

python數據可視化–可視化概述

數據可視化是python最常見的應用領域之一,數據可視化是藉助圖形化的手段將一組數據以圖形的形式表達出來,並利用數據分析和開發工具發現其中未知信息的數據處理過程。

在學術界有一句話廣為流傳,A picture worths thousand words,就是一圖值千言。在課堂上,我經常舉的例子就是大家在刷朋友圈的時候如果看到有人轉發一篇題目很吸引人的文章時,我們都會點擊進去,可能前幾段話會很認真地看,文章很長的時候後面就會一目十行,失去閱讀的興趣。

所以將數據、表格和文字等內容用圖表的形式表達出來,既能提高讀者閱讀的興趣,還能直觀表達想要表達的內容。

python可視化庫有很多,下面列舉幾個最常用的介紹一下。

matplotlib

它是python眾多數據可視化庫的鼻祖,也是最基礎的底層數據可視化第三方庫,語言風格簡單、易懂,特別適合初學者入門學習。

seaborn

Seaborn是在matplotlib的基礎上進行了更高級的API封裝,從而使得作圖更加容易,在大多數情況下使用seaborn能做出很具有吸引力的圖,而使用matplotlib就能製作具有更多特色的圖。應該把Seaborn視為matplotlib的補充,而不是替代物。

pyecharts

pyecharts是一款將python與echarts結合的強大的數據可視化工具,生成的圖表精巧,交互性良好,可輕鬆集成至 Flask,Sanic,Django 等主流 Web 框架,得到眾多開發者的認可。

bokeh

bokeh是一個面向web瀏覽器的互動式可視化庫,它提供了多功能圖形的優雅、簡潔的構造,並在大型數據集或流式數據集上提供高性能的交互性。

python這些可視化庫可以便捷、高效地生成豐富多彩的圖表,下面列舉一些常見的圖表。

柱形圖

條形圖

坡度圖

南丁格爾玫瑰圖

雷達圖

詞雲圖

散點圖

等高線圖

瀑布圖

相關係數圖

散點曲線圖

直方圖

箱形圖

核密度估計圖

折線圖

面積圖

日曆圖

餅圖

圓環圖

馬賽克圖

華夫餅圖

還有地理空間型等其它圖表,就不一一列舉了,下節開始我們先學習matplotlib這個最常用的可視化庫。

Python中除了matplotlib外還有哪些數據可視化的庫

數據可視化是展示數據、理解數據的有效手段,常用的Python數據可視化庫如下:

1.Matplotlib:第一個Python可視化庫,有許多別的程序庫都是建立在其基礎上或者直接調用該庫,可以很方便地得到數據的大致信息,功能非常強大,但也非常複雜。

2.Seaborn:利用Matplotlib,用簡潔的代碼來製作好看的圖表,與Matplotlib最大的區別為默認繪圖風格和色彩搭配都具有現代美感。

3.ggplot:基於R的一個作圖庫的ggplot2,同時利用了源於《圖像語法》中的概念,允許疊加不同的圖層來完成一幅圖,並不適用於製作非常個性化的圖像,為操作的簡潔度而犧牲了圖像的複雜度。

4.Bokeh:與ggplot很相似,但與ggplot不同之處為它完全基於Python而不是從R處引用。長處在於能用於製作可交互、可直接用於網路的圖表。圖表可以輸出為JSON對象、HTML文檔或者可交互的網路應用。

5.Plotly:可以通過Python notebook使用,與bokeh一樣致力於交互圖表的製作,但提供在別的庫中幾乎沒有的幾種圖表類型,如等值線圖、樹形圖和三維圖表。

6.pygal:與Bokeh和Plotly一樣,提供可直接嵌入網路瀏覽器的可交互圖像。與其他兩者的主要區別在於可將圖表輸出為SVG格式,所有的圖表都被封裝成方法,且默認的風格也很漂亮,用幾行代碼就可以很容易地製作出漂亮的圖表。

7.geoplotlib:用於製作地圖和地理相關數據的工具箱。可用來製作多種地圖,比如等值區域圖、熱度圖、點密度圖等,必須安裝Pyglet方可使用。

8.missingno:用圖像的方式快速評估數據缺失的情況,可根據數據的完整度對數據進行排序或過濾,或者根據熱度圖或樹狀圖對數據進行修正。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/251993.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-13 17:33
下一篇 2024-12-13 17:33

相關推薦

  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python創意編程比賽作品

    Python創意編程比賽是一個非常有趣和有挑戰性的比賽,它需要參賽者充分發揮自己的想像力,運用Python編程語言來實現創意和創新的作品。本文將從五個方面來介紹Python創意編程…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • 如何通過jstack工具列出假死的java進程

    假死的java進程是指在運行過程中出現了某些問題導致進程停止響應,此時無法通過正常的方式關閉或者重啟該進程。在這種情況下,我們可以藉助jstack工具來獲取該進程的進程號和線程號,…

    編程 2025-04-29
  • Python最強大的製圖庫——Matplotlib

    Matplotlib是Python中最強大的數據可視化工具之一,它提供了海量的製圖、繪圖、繪製動畫的功能,通過它可以輕鬆地展示數據的分布、比較和趨勢。下面將從多個方面對Matplo…

    編程 2025-04-29
  • 註冊表取證工具有哪些

    註冊表取證是數字取證的重要分支,主要是獲取計算機系統中的註冊表信息,進而分析痕迹,獲取重要證據。本文將以註冊表取證工具為中心,從多個方面進行詳細闡述。 一、註冊表取證工具概述 註冊…

    編程 2025-04-29
  • Python range: 強大的迭代器函數

    Python range函數是Python中最常用的內置函數之一。它被廣泛用於for循環的迭代,列表推導式,和其他需要生成一系列數字的應用程序中。在本文中,我們將會詳細介紹Pyth…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28

發表回復

登錄後才能評論