導航:首頁 > 編程語言 > python中plot函數用法

python中plot函數用法

發布時間:2022-12-12 00:51:40

A. python繪制函數圖像

raw_input獲取的輸入是字元串,不能直接用np.array,需要用split進行切分,然後強制轉化成數值類型,才能用plot函數
我把你的代碼稍微修改了一下,可能不太漂亮,不過能運行了
x=[1,2,3]
a = raw_input('function>>>')
a = a.split(' ')#依空格對字元串a進行切分,如果是用逗號分隔,則改成a.split(',')
b = []
for i in range(len(a)):#把切分好的字元強制轉化成int類型,如果是小數,將int改為float
b.append(int(a[i]))
plt.plot(x, b, label='x', color="green", linewidth=1)

B. 用Python畫圖

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

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

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

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

turtle.forward(200)

turtle.left(170)

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

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

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

好玩吧。

有需要仔細研究的可以看下這篇文章 https://blog.csdn.net/zengxiantao1994/article/details/76588580 ,這個牛人最後用這個庫畫個移動的鍾表,太贊了。

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

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

使用起來也挺簡單,

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

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

接著就是各種完善,比如加標題,設定x軸和y軸標簽,范圍,顏色,網格等等,在 https://blog.csdn.net/guoziqing506/article/details/78975150 這篇文章里介紹的很詳細。

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

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

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

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

plt.plot(df['time'], df['ini'])

plt.show()

就能得到如下圖:

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

然後呢,我在上篇文章 https://www.jianshu.com/p/d4013d8a73de 中介紹過求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軸怎麼加?這又是一個問題,留給愛思考愛學習的你。

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

C. python plot畫點

我先假設你用的是python(雖然我感覺像是matlab)

importmatplotlib.pyplotasplt
plt.plot(x,y,'ro',label="point")
plt.legend()
plt.show()

這里legend可以顯示圖示

如果是matlab 你直接標legend=xxxx就行了 可以查一下用法

D. Python氣象數據處理與繪圖(18):泰勒圖

泰勒圖繪制的核心思想是設計一個只有第一象限的極坐標,並將方差,相關系數進行捆綁,通過轉化為極坐標系坐標進行繪制。為了實現泰勒圖的繪制,我設計了兩個函數:

set_tayloraxes(fig, location=111) 和plot_taylor(axes, refsample, sample, args, *kwargs)

set_tayloraxes()函數用於建立一個泰勒圖的坐標系,這個自定義函數一般情況下不建議修改,每一個參數都是經過多次調試得到的,很可能牽一發動全身。因此,將繪圖部分的獨立成為了plot_taylor函數(),這部分函數較為簡單,目的就是將需要繪圖的數據,轉換為極坐標系坐標,通過plot函數將散點打在泰勒圖上,這個函數模塊較為簡單,可以根據自己的輸入數據情況進行調整。

下面介紹下函數的具體用法:

輸入:

fig: 需要繪圖的figure

rect:圖的位置,如111為1行1列第一個,122為1行2列第2個

輸出:

polar_ax:泰勒坐標系

輸入:

axes : setup_axes返回的泰勒坐標系

refsample :參照樣本

sample :評估樣本

args, *kwargs :plt.plot()函數的相關參數,設置點的顏色,形狀等等。

下面給出示例:

E. python中plot怎麼設置橫縱坐標名稱

用plot畫二維圖像時,默認情況下的橫坐標和縱坐標顯示的值有時達不到自己的需求,需要藉助xticks()和yticks()分別對橫坐標x-axis和縱坐標y-axis進行設置。

import numpy as np

import matplotlib.pyplot as plt

x = range(1,13,1)

y = range(1,13,1)

plt.plot(x,y)

plt.show()

此時的x軸和y軸都是只顯示偶數,其它的奇數未顯示,這樣在展示實驗效果或放入文章中都會影響其可讀性。

為了設置坐標軸的值,增加其可讀性,有多種方法。這里介紹的是matplotlib的函數xticks()和yticks()。


(5)python中plot函數用法擴展閱讀

基本用法:

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

# 生成x軸上的數據:從-3到3,總共有50個點

x = np.linspace(-1, 1, 50)

# 定義一個線性方程

y1 = 2 * x + 1

# 定義一個二次方程

y2 = x ** 2

# 設置x軸的取值范圍為:-1到2

plt.xlim(-1, 2)

# 設置y軸的取值范圍為:-1到3

plt.ylim(-1, 3)

# 設置x軸的文本,用於描述x軸代表的是什麼

plt.xlabel("I am x")

# 設置y軸的文本,用於描述y軸代表的是什麼

plt.ylabel("I am y")

plt.plot(x, y2)

# 繪制紅色的線寬為1虛線的線條

plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')

# 顯示圖表

plt.show()

F. Python實操:手把手教你用Matplotlib把數據畫出來

作者:邁克爾·貝耶勒(Michael Beyeler)

如需轉載請聯系華章 科技

如果已安裝Anaconda Python版本,就已經安裝好了可以使用的 Matplotlib。否則,可能要訪問官網並從中獲取安裝說明:

http://matplotlib.org

正如使用np作為 NumPy 的縮寫,我們將使用一些標準的縮寫來表示 Matplotlib 的引入:

在本書中,plt介面會被頻繁使用。

讓我們創建第一個繪圖。

假設想要畫出正弦函數sin(x)的線性圖。得到函數在x坐標軸上0≤x<10內所有點的值。我們將使用 NumPy 中的 linspace 函數來在x坐標軸上創建一個從0到10的線性空間,以及100個采樣點:

可以使用 NumPy 中的sin函數得到所有x點的值,並通過調用plt中的plot函數把結果畫出來:

你親自嘗試了嗎?發生了什麼嗎?有沒有什麼東西出現?

實際情況是,取決於你在哪裡運行腳本,可能無法看到任何東西。有下面幾種可能性:

1. 從.py腳本中繪圖

如果從一個腳本中運行 Matplotlib,需要加上下面的這行調用:

在腳本末尾調用這個函數,你的繪圖就會出現!

2. 從 IPython shell 中繪圖

這實際上是互動式地執行Matplotlib最方便的方式。為了讓繪圖出現,需要在啟動 IPython 後使用所謂的%matplotlib魔法命令。

接下來,無須每次調用plt.show()函數,所有的繪圖將會自動出現。

3. 從 Jupyter Notebook 中繪圖

如果你是從基於瀏覽器的 Jupyter Notebook 中看這段代碼,需要使用同樣的%matplotlib魔法命令。然而,也可以直接在notebook中嵌入圖形,這會有兩種輸出選項:

在本書中,將會使用inline選項:

現在再次嘗試一下:

上面的命令會得到下面的繪圖輸出結果:

如果想要把繪圖保存下來留作以後使用,可以直接在 IPython 或者 Jupyter Notebook 使用下面的命令保存:

僅需要確保你使用了支持的文件後綴,比如.jpg、.png、.tif、.svg、.eps或者.pdf

作為本章最後一個測試,讓我們對外部數據集進行可視化,比如scikit-learn中的數字數據集。

為此,需要三個可視化工具:

那麼開始引入這些包吧:

第一步是載入實際數據:

如果沒記錯的話,digits應該有兩個不同的數據域:data域包含了真正的圖像數據,target域包含了圖像的標簽。相對於相信我們的記憶,我們還是應該對digits稍加 探索 。輸入它的名字,添加一個點號,然後按Tab鍵:digits.<TAB>,這個操作將向我們展示digits也包含了一些其他的域,比如一個名為images的域。images和data這兩個域,似乎簡單從形狀上就可以區分。

兩種情況中,第一維對應的都是數據集中的圖像數量。然而,data中所有像素都在一個大的向量中排列,而images保留了各個圖像8×8的空間排列。

因此,如果想要繪制出一副單獨的圖像,使用images將更加合適。首先,使用NumPy的數組切片從數據集中獲取一幅圖像:

這里是從1797個元素的數組中獲取了它的第一行數據,這行數據對應的是8×8=64個像素。下面就可以使用plt中的imshow函數來繪制這幅圖像:

上面的命令得到下面的輸出:

此外,這里也使用cmap參數指定了一個顏色映射。默認情況下,Matplotlib 使用MATLAB默認的顏色映射jet。然而,在灰度圖像的情況下,gray顏色映射更有效。

最後,可以使用plt的subplot函數繪制全部數字的樣例。subplot函數與MATLAB中的函數一樣,需要指定行數、列數以及當前的子繪圖索引(從1開始計算)。我們將使用for 循環在數據集中迭代出前十張圖像,每張圖像都分配到一個單獨的子繪圖中。

這會得到下面的輸出結果:

關於作者:Michael Beyeler,華盛頓大學神經工程和數據科學專業的博士後,主攻仿生視覺計算模型,用以為盲人植入人工視網膜(仿生眼睛),改善盲人的視覺體驗。 他的工作屬於神經科學、計算機工程、計算機視覺和機器學習的交叉領域。同時他也是多個開源項目的積極貢獻者。

本文摘編自《機器學習:使用OpenCV和Python進行智能圖像處理》,經出版方授權發布。

G. Python最小二乘法擬合與作圖

在函數擬合中,如果用p表示函數中需要確定的參數,那麼目標就是找到一組p,使得下面函數S的值最小:

這種演算法稱為最小二乘法擬合。Python的Scipy數值計算庫中的optimize模塊提供了 leastsq() 函數,可以對數據進行最小二乘擬合計算。

此處利用該函數對一段弧線使用圓方程進行了擬合,並通過Matplotlib模塊進行了作圖,程序內容如下:

Python的使用中需要導入相應的模塊,此處首先用 import 語句

分別導入了numpy, leastsq與pylab模塊,其中numpy模塊常用用與數組類型的建立,讀入等過程。leastsq則為最小二乘法擬合函數。pylab是繪圖模塊。

接下來我們需要讀入需要進行擬合的數據,這里使用了 numpy.loadtxt() 函數:

其參數有:

進行擬合時,首先我們需要定義一個目標函數。對於圓的方程,我們需要圓心坐標(a,b)以及半徑r三個參數,方便起見用p來存儲:

緊接著就可以進行擬合了, leastsq() 函數需要至少提供擬合的函數名與參數的初始值:

返回的結果為一數組,分別為擬合得到的參數與其誤差值等,這里只取擬合參數值。

leastsq() 的參數具體有:

輸出選項有:

最後我們可以將原數據與擬合結果一同做成線狀圖,可採用 pylab.plot() 函數:

pylab.plot() 函數需提供兩列數組作為輸入,其他參數可調控線條顏色,形狀,粗細以及對應名稱等性質。視需求而定,此處不做詳解。

pylab.legend() 函數可以調控圖像標簽的位置,有無邊框等性質。

pylab.annotate() 函數設置注釋,需至少提供注釋內容與放置位置坐標的參數。

pylab.show() 函數用於顯示圖像。

最終結果如下圖所示:

用Python作科學計算

numpy.loadtxt

scipy.optimize.leastsq

H. 如何用python繪制各種圖形

1.環境

系統:windows10

python版本:python3.6.1

使用的庫:matplotlib,numpy

2.numpy庫產生隨機數幾種方法

import numpy as np
numpy.random

rand(d0,d1,...,dn)

In [2]: x=np.random.rand(2,5)

In [3]: x
Out[3]:
array([[ 0.84286554, 0.50007593, 0.66500549, 0.97387807, 0.03993009],
[ 0.46391661, 0.50717355, 0.21527461, 0.92692517, 0.2567891 ]])

randn(d0,d1,...,dn)查詢結果為標准正態分布

In [4]: x=np.random.randn(2,5)

In [5]: x
Out[5]:
array([[-0.77195196, 0.26651203, -0.35045793, -0.0210377 , 0.89749635],
[-0.20229338, 1.44852833, -0.10858996, -1.65034606, -0.39793635]])

randint(low,high,size)

生成low到high之間(半開區間 [low, high)),size個數據

In [6]: x=np.random.randint(1,8,4)

In [7]: x
Out[7]: array([4, 4, 2, 7])

random_integers(low,high,size)

生成low到high之間(閉區間 [low, high)),size個數據

In [10]: x=np.random.random_integers(2,10,5)

In [11]: x
Out[11]: array([7, 4, 5, 4, 2])

3.散點圖

x x軸
y y軸
s 圓點面積
c 顏色
marker 圓點形狀
alpha 圓點透明度#其他圖也類似這種配置
N=50# height=np.random.randint(150,180,20)# weight=np.random.randint(80,150,20)
x=np.random.randn(N)
y=np.random.randn(N)
plt.scatter(x,y,s=50,c='r',marker='o',alpha=0.5)
plt.show()

8.箱型圖

import matplotlib.pyplot as pltimport numpy as npdata=np.random.normal(loc=0,scale=1,size=1000)#sym 點的形狀,whis虛線的長度plt.boxplot(data,sym="o",whis=1.5)plt.show()
#sym 點的形狀,whis虛線的長度

I. Python設置matplotlib.plot的坐標軸刻度間隔以及刻度范圍

import matplotlib.pyplot as plt

x_values=list(range(11))   #x軸的數字是0到10這11個整數

y_values=[x**2forx inx_values]   #y軸的數字是x軸數字的平方

plt.plot(x_values,y_values,c='green')  #用plot函數繪制折線圖,線條顏色設置為綠色

plt.title('Squares',fontsize=24)   #設置圖表標題和標題字型大小

plt.tick_params(axis='both',which='major',labelsize=14) #設置刻度的字型大小

plt.xlabel('Numbers',fontsize=14)  #設置x軸標簽及其字型大小

plt.ylabel('Squares',fontsize=14)  #設置y軸標簽及其字型大小

plt.show()

import matplotlib.pyplot as plt

from matplotlib.pyplot import MultipleLocator

#從pyplot導入MultipleLocator類,這個類用於設置刻度間隔

x_values=list(range(11))

y_values=[x**2forx inx_values]

plt.plot(x_values,y_values,c='green')

plt.title('Squares',fontsize=24)

plt.tick_params(axis='both',which='major',labelsize=14)

plt.xlabel('Numbers',fontsize=14)

plt.ylabel('Squares',fontsize=14)

x_major_locator=MultipleLocator(1) #把x軸的刻度間隔設置為1,並存在變數里

y_major_locator=MultipleLocator(10) #把y軸的刻度間隔設置為10,並存在變數里

ax=plt.gca() #ax為兩條坐標軸的實例

ax.xaxis.set_major_locator(x_major_locator) #把x軸的主刻度設置為1的倍數

ax.yaxis.set_major_locator(y_major_locator) #把y軸的主刻度設置為10的倍數

plt.xlim(-0.5,11)  #把x軸的刻度范圍設置為-0.5到11,因為0.5不滿一個刻度間隔,所以數字不會顯示出來,但是能看到一點空白

plt.ylim(-5,110) #把y軸的刻度范圍設置為-5到110,同理,-5不會標出來,但是能看到一點空白

plt.show()

J. python繪圖篇

1,xlable,ylable設置x,y軸的標題文字。

2,title設置標題。

3,xlim,ylim設置x,y軸顯示範圍。

plt.show()顯示繪圖窗口,通常情況下,show()會阻礙程序運行,帶-wthread等參數的環境下,窗口不會關閉。

plt.saveFig()保存圖像。

面向對象繪圖

1,當前圖表和子圖可以用gcf(),gca()獲得。

subplot()繪制包含多個圖表的子圖。

configure subplots,可調節子圖與圖表邊框距離。

可以通過修改配置文件更改對象屬性。

圖標顯示中文

1,在程序中直接指定字體。

2, 在程序開始修改配置字典reParams.

3,修改配置文件。

Artist對象

1,圖標的繪制領域。

2,如何在FigureCanvas對象上繪圖。

3,如何使用Renderer在FigureCanvas對象上繪圖。

FigureCanvas和Render處理底層圖像操作,Artist處理高層結構。

分為簡單對象和容器對象,簡單的Aritist是標準的繪圖元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器類型包含許多簡單的的 Aritist對象,使他們構成一個整體,例如Axis,Axes,Figure等。

直接創建Artist對象進項繪圖操作步奏:

1,創建Figure對象(通過figure()函數,會進行許多初始化操作,不建議直接創建。)

2,為Figure對象創建一個或多個Axes對象。

3,調用Axes對象的方法創建各類簡單的Artist對象。

Figure容器

如何找到指定的Artist對象。

1,可調用add_subplot()和add_axes()方法向圖表添加子圖。

2,可使用for循環添加柵格。

3,可通過transform修改坐標原點。

Axes容器

1,patch修改背景。

2,包含坐標軸,坐標網格,刻度標簽,坐標軸標題等內容。

3,get_ticklabels(),,get-ticklines獲得刻度標簽和刻度線。

1,可對曲線進行插值。

2,fill_between()繪制交點。

3,坐標變換。

4,繪制陰影。

5,添加註釋。

1,繪制直方圖的函數是

2,箱線圖(Boxplot)也稱箱須圖(Box-whisker Plot),是利用數據中的五個統計量:最小值、第一四分位

數、中位數、第三四分位數與最大值來描述數據的一種方法,它可以粗略地看出數據是否具有對稱性以及分

布的分散程度等信息,特別可以用於對幾個樣本的比較。

3,餅圖就是把一個圓盤按所需表達變數的觀察數劃分為若干份,每一份的角度(即面積)等價於每個觀察

值的大小。

4,散點圖

5,QQ圖

低層繪圖函數

類似於barplot(),dotchart()和plot()這樣的函數採用低層的繪圖函數來畫線和點,來表達它們在頁面上放置的位置以及其他各種特徵。

在這一節中,我們會描述一些低層的繪圖函數,用戶也可以調用這些函數用於繪圖。首先我們先講一下R怎麼描述一個頁面;然後我們講怎麼在頁面上添加點,線和文字;最後講一下怎麼修改一些基本的圖形。

繪圖區域與邊界

R在繪圖時,將顯示區域劃分為幾個部分。繪制區域顯示了根據數據描繪出來的圖像,在此區域內R根據數據選擇一個坐標系,通過顯示出來的坐標軸可以看到R使用的坐標系。在繪制區域之外是邊沿區,從底部開始按順時針方向分別用數字1到4表示。文字和標簽通常顯示在邊沿區域內,按照從內到外的行數先後顯示。

添加對象

在繪制的圖像上還可以繼續添加若干對象,下面是幾個有用的函數,以及對其功能的說明。

•points(x, y, ...),添加點

•lines(x, y, ...),添加線段

•text(x, y, labels, ...),添加文字

•abline(a, b, ...),添加直線y=a+bx

•abline(h=y, ...),添加水平線

•abline(v=x, ...),添加垂直線

•polygon(x, y, ...),添加一個閉合的多邊形

•segments(x0, y0, x1, y1, ...),畫線段

•arrows(x0, y0, x1, y1, ...),畫箭頭

•symbols(x, y, ...),添加各種符號

•legend(x, y, legend, ...),添加圖列說明

閱讀全文

與python中plot函數用法相關的資料

熱點內容
怎麼批量有順序的命名文件夾 瀏覽:207
杭州程序員健身 瀏覽:17
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151