在Python的數據可視化庫中,采用matplotlib繪制相關圖形時,若不加任何設定,一般的x-y坐標軸是不帶箭頭且是一個封閉的矩形。我們以Sigmoid函數的繪制,給大家展示一下。
利津網站制作公司哪家好,找創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設公司等網站項目制作,到程序開發,運營維護。創新互聯公司成立于2013年到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯公司。
matplotlib的輔助工具,包含一系列對坐標軸設置的框架。其中的axisartist包就用來設置坐標軸的類型。
1.創建畫布并引入axisartist工具。
2.繪制帶箭頭的x-y坐標軸
我們先把原始的如上圖的所有坐標軸隱藏,即長方形的四個邊。
然后用ax.new_floating_axis在繪圖區添加坐標軸x、y,這里的ax.new_floating_axis(0,0),第一個0代表平行直線,第二個0代表該直線經過0點。同樣,ax.axis["y"] = ax.new_floating_axis(1,0),則代表豎直曲線且經過0點。
再次,x.axis["x"].set_axisline_style("-", size = 1.0)表示給x軸加上箭頭,"-"表示是空箭頭,size = 1.0表示箭頭大小。ax.axis["y"].set_axisline_style("-|", size = 1.0)中"-|"則是實心箭頭。
最后,設置x、y軸上刻度顯示方向,對于x軸是刻度標簽在上面還是下面,y軸則是刻度標簽在左邊還是右邊。
3.在帶箭頭的x-y坐標軸背景下,繪制函數圖像
tist坐標軸工具——將原始坐標軸均隱藏掉——添加新的基于原點的x與y軸——為新坐標軸加入箭頭,并設置刻度顯示方式——加入圖形。
pre
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
def func(x):
return -(x-2)*(x-8)+40
x=np.linspace(0,10)
y=func(x)
fig,ax = plt.subplots()
plt.plot(x,y,'r',linewidth=2)
plt.ylim(ymin=20)
a=2
b=9
ax.set_xticks([a,b])
ax.set_xticklabels(['$a$','$b$'])
ax.set_yticks([])
plt.figtext(0.9,0.05,'$x$')
plt.figtext(0.1,0.9,'$y$')
ix=np.linspace(a,b)
iy=func(ix)
ixy=zip(ix,iy)
verts=[(a,0)]+list(ixy)+[(b,0)]
poly = Polygon(verts,facecolor='0.9',edgecolor='0.5')
ax.add_patch(poly)
x_math=(a+b)*0.5
y_math=35
plt.text(x_math,y_math,r"$\int_a^b(-(x-2)*(x-8)+40)dx$",horizontalalignment='center',size=12)
plt.show()
/pre
在python自帶編輯器IDLE中,新建腳本如作圖.py
導入需要的模塊
import numpy as np
import scipy as sp
import pylab as pl
2
輸入代碼
x=np.linspace(0,4*np.pi,100)
pl.plot(x,pl.sin(x))
pl.show()
3
執行代碼,按F5,可直接顯示圖片
4
幾點說明:
1. 方法linspace(0,4*np.pi,100)表示從0開始,到4*pi結束,生成100個點
2. 方法plot為畫圖函數,相當于plot(x,y),x為橫坐標,y為縱坐標
3.show()為展示出來
希望采納!!
今天開始琢磨用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軸怎么加?這又是一個問題,留給愛思考愛學習的你。
有了自己的數據,建立自己的各個指數,然后再放到圖形界面中,同時針對異常情況再自動進行提醒,比如要抄底了,要賣出了,用程序做出自己的晴雨表。
1、首先在python軟件中,創建一個響應鼠標的自定義函數,當鼠標在畫布上面點擊一下,就畫一個圓。
2、創建一個畫布,背景是白色:img=np.ones((365,500,3),np.uint8)*255。
3、然后創建一個窗口:cv2.namedWindow('image')。當鼠標在這個窗口里面的時候,上面的自定義函數會響應鼠標。
4、開始一個while循環,每次在image窗口里面點擊鼠標,就會畫一個圓。
5、執行程序之后,在畫布上隨機的點擊鼠標,就可以得到彩色的圓。
網站欄目:python畫函數坐標圖 python繪制函數圖
鏈接URL:http://vcdvsql.cn/article0/hehhio.html
成都網站建設公司_創新互聯,為您提供商城網站、網站排名、定制開發、云服務器、響應式網站、網站營銷
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯