1. 繪制3D曲面圖
創(chuàng)新互聯(lián)是一家專業(yè)提供宣州企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、H5開(kāi)發(fā)、小程序制作等業(yè)務(wù)。10年已為宣州眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig=plt.figure()
ax=Axes3D(fig)
x=np.arange(-4,4,0.25)
y=np.arange(-4,4,0.25)
x,y=np.meshgrid(x,y)
r=np.sqrt(x**2, y**2)
z=np.sin(r)
//繪面函數(shù)
ax.plot_surface(x,y,z,rstride=1,cstride=1,cmap=“rainbow”
plt.show()
2.繪制三維的散點(diǎn)圖(表述一些數(shù)據(jù)點(diǎn)分布)
4a.mat數(shù)據(jù)地址:http blog.csdn.net/eddy_zhang/article/details/50496164
from matplotlib import pyplot as plt
import scipy.io as sio
from mpl_toolkits.mplot3d import Axes3D
matl=‘4a.mat’
data=sio.loadmat(matl)
m=data[‘data’]
x,y,z=m[0],m[1],m[2]
//創(chuàng)建一個(gè)繪圖工程
ax=plt.subplot(111,project=‘3D’)
//將數(shù)據(jù)點(diǎn)分成三部分畫,在顏色上有區(qū)分度
ax.scatter(x[:1000], y[:1000], z[:1000],c=‘y’ )//繪制數(shù)據(jù)點(diǎn)
ax.scatter(x[1000:4000], y[1000:4000], z[1000:4000],c=‘r’ )//繪制數(shù)據(jù)點(diǎn)
ax.scatter(x[4000:], y[4000:], z[4000:],c=‘g’ )//繪制數(shù)據(jù)點(diǎn)
ax.set_zlable(‘z’)//坐標(biāo)軸
ax.set_ylable(‘y’)//坐標(biāo)軸
ax.set_xlable(‘x’)
plt.show()
'''
s:
size的縮寫,設(shè)置散點(diǎn)的大小。若是給定一個(gè)數(shù)值,則所有點(diǎn)的大小一致;若是給定一個(gè)數(shù)組,則每個(gè)點(diǎn)的大小不同。
c:
color的縮寫,設(shè)置散點(diǎn)的顏色。若只有一個(gè)值,則所有的點(diǎn)設(shè)置為同一個(gè)顏色,若給定一個(gè)顏色數(shù)組,則不同的點(diǎn)可以設(shè)置成不同的顏色,若給定浮點(diǎn)數(shù)的數(shù)組,則映射到相應(yīng)的顏色。
marker:
用于設(shè)置散點(diǎn)的標(biāo)記,用法與折線圖的marker參數(shù)一對(duì)稱,具體參考《python數(shù)據(jù)可視化--matplotlib繪制折線圖(2)》對(duì)marker的詳細(xì)介紹。
cmap:
表示數(shù)據(jù)點(diǎn)的顏色映射表,僅當(dāng)參數(shù)c為浮點(diǎn)數(shù)的數(shù)組時(shí)才可用。cmap需要花很大的篇幅進(jìn)行介紹,往后再詳細(xì)講解,在此先按下不表。
norm:
表示數(shù)據(jù)的亮度,取值范圍在0~1,只有c是一個(gè)浮點(diǎn)數(shù)的數(shù)組的時(shí)候才使用。
alpha:
表示數(shù)據(jù)的透明度,取值范圍在0~1。
linewidths:表示數(shù)據(jù)點(diǎn)邊緣的寬度。
edgecolors:表示數(shù)據(jù)點(diǎn)邊緣的顏色。
'''
'''
顏色映射是一系列顏色,從起始顏色漸變到結(jié)束顏色,可用于突出數(shù)據(jù)的規(guī)律
例如,交錢的顏色顯示較小的值,較深的顏色顯示較大的值
'''
一、導(dǎo)包
二、繪制簡(jiǎn)單折線
1、在利用pandas模塊進(jìn)行操作前,可以先引入這個(gè)模塊,如下:
2、讀取Excel文件的兩種方式:
三、pandas操作Excel的行列
1、讀取指定的單行,數(shù)據(jù)會(huì)存在列表里面
2、讀取指定的多行,數(shù)據(jù)會(huì)存在嵌套的列表里面
3、讀取指定的行列
4、讀取指定的多行多列值
5、獲取所有行的指定列
6、獲取行號(hào)并打印輸出
7、獲取列名并打印輸出
8、獲取指定行數(shù)的值
四、pandas處理Excel數(shù)據(jù)成為字典
五、繪制簡(jiǎn)單折線圖
六、繪制簡(jiǎn)單散點(diǎn)圖
使用scatter繪制散點(diǎn)圖并設(shè)置其樣式
1、繪制單個(gè)點(diǎn),使用函數(shù)scatter,并向它傳遞x,y坐標(biāo),并可使用參數(shù)s指定點(diǎn)的大小
2、繪制一系列點(diǎn),向scatter傳遞兩個(gè)分別包含x值和y值的列表
3、設(shè)置坐標(biāo)軸的取值范圍:函數(shù)axis()要求提供四個(gè)值,x,y坐標(biāo)軸的最大值和最小值
4、使用參數(shù)edgecolor在函數(shù)scatter中設(shè)置數(shù)據(jù)點(diǎn)的輪廓
5、向scatter傳遞參數(shù)c,指定要使用的顏色
6、使用顏色映射
7、自動(dòng)保存圖表:使用函數(shù)plt.savefig()
8、設(shè)置繪圖窗口尺寸
9、實(shí)例程序
1,xlable,ylable設(shè)置x,y軸的標(biāo)題文字。
2,title設(shè)置標(biāo)題。
3,xlim,ylim設(shè)置x,y軸顯示范圍。
plt.show()顯示繪圖窗口,通常情況下,show()會(huì)阻礙程序運(yùn)行,帶-wthread等參數(shù)的環(huán)境下,窗口不會(huì)關(guān)閉。
plt.saveFig()保存圖像。
面向?qū)ο罄L圖
1,當(dāng)前圖表和子圖可以用gcf(),gca()獲得。
subplot()繪制包含多個(gè)圖表的子圖。
configure subplots,可調(diào)節(jié)子圖與圖表邊框距離。
可以通過(guò)修改配置文件更改對(duì)象屬性。
圖標(biāo)顯示中文
1,在程序中直接指定字體。
2, 在程序開(kāi)始修改配置字典reParams.
3,修改配置文件。
Artist對(duì)象
1,圖標(biāo)的繪制領(lǐng)域。
2,如何在FigureCanvas對(duì)象上繪圖。
3,如何使用Renderer在FigureCanvas對(duì)象上繪圖。
FigureCanvas和Render處理底層圖像操作,Artist處理高層結(jié)構(gòu)。
分為簡(jiǎn)單對(duì)象和容器對(duì)象,簡(jiǎn)單的Aritist是標(biāo)準(zhǔn)的繪圖元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器類型包含許多簡(jiǎn)單的的 Aritist對(duì)象,使他們構(gòu)成一個(gè)整體,例如Axis,Axes,Figure等。
直接創(chuàng)建Artist對(duì)象進(jìn)項(xiàng)繪圖操作步奏:
1,創(chuàng)建Figure對(duì)象(通過(guò)figure()函數(shù),會(huì)進(jìn)行許多初始化操作,不建議直接創(chuàng)建。)
2,為Figure對(duì)象創(chuàng)建一個(gè)或多個(gè)Axes對(duì)象。
3,調(diào)用Axes對(duì)象的方法創(chuàng)建各類簡(jiǎn)單的Artist對(duì)象。
Figure容器
如何找到指定的Artist對(duì)象。
1,可調(diào)用add_subplot()和add_axes()方法向圖表添加子圖。
2,可使用for循環(huán)添加?xùn)鸥瘛?/p>
3,可通過(guò)transform修改坐標(biāo)原點(diǎn)。
Axes容器
1,patch修改背景。
2,包含坐標(biāo)軸,坐標(biāo)網(wǎng)格,刻度標(biāo)簽,坐標(biāo)軸標(biāo)題等內(nèi)容。
3,get_ticklabels(),,get-ticklines獲得刻度標(biāo)簽和刻度線。
1,可對(duì)曲線進(jìn)行插值。
2,fill_between()繪制交點(diǎn)。
3,坐標(biāo)變換。
4,繪制陰影。
5,添加注釋。
1,繪制直方圖的函數(shù)是
2,箱線圖(Boxplot)也稱箱須圖(Box-whisker Plot),是利用數(shù)據(jù)中的五個(gè)統(tǒng)計(jì)量:最小值、第一四分位
數(shù)、中位數(shù)、第三四分位數(shù)與最大值來(lái)描述數(shù)據(jù)的一種方法,它可以粗略地看出數(shù)據(jù)是否具有對(duì)稱性以及分
布的分散程度等信息,特別可以用于對(duì)幾個(gè)樣本的比較。
3,餅圖就是把一個(gè)圓盤按所需表達(dá)變量的觀察數(shù)劃分為若干份,每一份的角度(即面積)等價(jià)于每個(gè)觀察
值的大小。
4,散點(diǎn)圖
5,QQ圖
低層繪圖函數(shù)
類似于barplot(),dotchart()和plot()這樣的函數(shù)采用低層的繪圖函數(shù)來(lái)畫線和點(diǎn),來(lái)表達(dá)它們?cè)陧?yè)面上放置的位置以及其他各種特征。
在這一節(jié)中,我們會(huì)描述一些低層的繪圖函數(shù),用戶也可以調(diào)用這些函數(shù)用于繪圖。首先我們先講一下R怎么描述一個(gè)頁(yè)面;然后我們講怎么在頁(yè)面上添加點(diǎn),線和文字;最后講一下怎么修改一些基本的圖形。
繪圖區(qū)域與邊界
R在繪圖時(shí),將顯示區(qū)域劃分為幾個(gè)部分。繪制區(qū)域顯示了根據(jù)數(shù)據(jù)描繪出來(lái)的圖像,在此區(qū)域內(nèi)R根據(jù)數(shù)據(jù)選擇一個(gè)坐標(biāo)系,通過(guò)顯示出來(lái)的坐標(biāo)軸可以看到R使用的坐標(biāo)系。在繪制區(qū)域之外是邊沿區(qū),從底部開(kāi)始按順時(shí)針?lè)较蚍謩e用數(shù)字1到4表示。文字和標(biāo)簽通常顯示在邊沿區(qū)域內(nèi),按照從內(nèi)到外的行數(shù)先后顯示。
添加對(duì)象
在繪制的圖像上還可以繼續(xù)添加若干對(duì)象,下面是幾個(gè)有用的函數(shù),以及對(duì)其功能的說(shuō)明。
?points(x, y, ...),添加點(diǎn)
?lines(x, y, ...),添加線段
?text(x, y, labels, ...),添加文字
?abline(a, b, ...),添加直線y=a+bx
?abline(h=y, ...),添加水平線
?abline(v=x, ...),添加垂直線
?polygon(x, y, ...),添加一個(gè)閉合的多邊形
?segments(x0, y0, x1, y1, ...),畫線段
?arrows(x0, y0, x1, y1, ...),畫箭頭
?symbols(x, y, ...),添加各種符號(hào)
?legend(x, y, legend, ...),添加圖列說(shuō)明
接受自己的普通,然后全力以赴的出眾,告訴自己要努力,但不要著急....
當(dāng)然, 這個(gè)結(jié)果并不是我真正想要的,Pass, 太丑了!
好吧,安排,我們先看下實(shí)現(xiàn)后的效果!
這個(gè)效果自然就比之前的好多了!
實(shí)現(xiàn)python散點(diǎn)圖繪制需要用到matplotlib庫(kù), matplotlib庫(kù)是專門用于可視化繪圖的工具庫(kù);學(xué)習(xí)一個(gè)新的庫(kù)當(dāng)然看官方文檔了:
實(shí)現(xiàn)思路:
matplotlib.pyplot.scatter() 函數(shù)是專門繪制散點(diǎn)圖的函數(shù):
matplotlib.pyplot.scatter ( x, y , s=None , c=None , marker=None , cmap=None , norm=None , vmin=None , vmax=None , alpha=None , linewidths=None , verts=None , edgecolors=None , ***, data=None , ** kwargs ) **
plt.scatter(observation, estimate, c=Z1, cmap=colormap, marker=".", s=marker_size, norm=colors.LogNorm(vmin=Z1.min(), vmax=0.5 * Z1.max()))
其中:
1、c參數(shù)為計(jì)算的散點(diǎn)密度;
2、cmap為色帶(matplotlib里面自帶了很多色帶可供選擇),參見(jiàn):
3、由于計(jì)算的散點(diǎn)密度數(shù)值大小分散,因此利用norm參數(shù)對(duì)散點(diǎn)密度Z1進(jìn)行歸一化處理(歸一化方式很多,參見(jiàn)colors類),并給歸一化方式設(shè)置色帶刻度的最大最小值vmin和vmax(一般這兩個(gè)參數(shù)就是指定散點(diǎn)密度的最小值和最大值),這樣就建立起了密度與色帶的映射關(guān)系。
(這里的結(jié)果與前面展示的相比改變了計(jì)算散點(diǎn)密度的半徑:radius = 3以及繪制散點(diǎn)圖的散點(diǎn)大小marksize)
作者能力水平有限,歡迎各位批評(píng)指正!
今天開(kāi)始琢磨用Python畫圖,沒(méi)使用之前是一臉懵的,我使用的開(kāi)發(fā)環(huán)境是Pycharm,這個(gè)輸出的是一行行命令,這個(gè)圖畫在哪里呢?
搜索之后發(fā)現(xiàn),它會(huì)彈出一個(gè)對(duì)話框,然后就開(kāi)始畫了,比如下圖
第一個(gè)常用的庫(kù)是Turtle,它是Python語(yǔ)言中一個(gè)很流行的繪制圖像的函數(shù)庫(kù),這個(gè)詞的意思就是烏龜,你可以想象下一個(gè)小烏龜在一個(gè)x和y軸的平面坐標(biāo)系里,從原點(diǎn)開(kāi)始根據(jù)指令控制,爬行出來(lái)就是繪制的圖形了。
它最常用的指令就是旋轉(zhuǎn)和移動(dòng),比如畫個(gè)圓,就是繞著圓心移動(dòng);再比如上圖這個(gè)怎么畫呢,其實(shí)主要就兩個(gè)命令:
turtle.forward(200)
turtle.left(170)
第一個(gè)命令是移動(dòng)200個(gè)單位并畫出來(lái)軌跡
第二個(gè)命令是畫筆順時(shí)針轉(zhuǎn)170度,注意此時(shí)并沒(méi)有移動(dòng),只是轉(zhuǎn)角度
然后呢? 循環(huán)重復(fù)就畫出來(lái)這個(gè)圖了
好玩吧。
有需要仔細(xì)研究的可以看下這篇文章 ,這個(gè)牛人最后用這個(gè)庫(kù)畫個(gè)移動(dòng)的鐘表,太贊了。
Turtle雖好玩,但是我想要的是我給定數(shù)據(jù),然后讓它畫圖,這里就找到另一個(gè)常用的畫圖的庫(kù)了。
Matplotlib是python最著名的繪圖庫(kù),它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地行制圖。其中,matplotlib的pyplot模塊一般是最常用的,可以方便用戶快速繪制二維圖表。
使用起來(lái)也挺簡(jiǎn)單,
首先import matplotlib.pyplot as plt?導(dǎo)入畫圖的圖。
然后給定x和y,用這個(gè)命令plt.plot(x, y)就能畫圖了,接著用plt.show()就可以把圖形展示出來(lái)。
接著就是各種完善,比如加標(biāo)題,設(shè)定x軸和y軸標(biāo)簽,范圍,顏色,網(wǎng)格等等,在 這篇文章里介紹的很詳細(xì)。
現(xiàn)在互聯(lián)網(wǎng)的好處就是你需要什么內(nèi)容,基本上都能搜索出來(lái),而且還是免費(fèi)的。
我為什么要研究這個(gè)呢?當(dāng)然是為了用,比如我把比特幣的曲線自己畫出來(lái)可好?
假設(shè)現(xiàn)在有個(gè)數(shù)據(jù)csv文件,一列是日期,另一列是比特幣的價(jià)格,那用這個(gè)命令畫下:
這兩列數(shù)據(jù)讀到pandas中,日期為df['time']列,比特幣價(jià)格為df['ini'],那我只要使用如下命令
plt.plot(df['time'], df['ini'])
plt.show()
就能得到如下圖:
自己畫的是不是很香,哈哈!
然后呢,我在上篇文章 中介紹過(guò)求Ahr999指數(shù),那可不可以也放到這張圖中呢?不就是加一條命令嘛
plt.plot(df['time'], df['Ahr999'])
圖形如下:
但是,Ahr999指數(shù)怎么就一條線不動(dòng)啊,?原來(lái)兩個(gè)Y軸不一致,顯示出來(lái)太怪了,需要用多Y軸,問(wèn)題來(lái)了。
繼續(xù)谷歌一下,把第二個(gè)Y軸放右邊就行了,不過(guò)呢得使用多圖,重新繪制
fig = plt.figure() # 多圖
ax1 = fig.add_subplot(111)
ax1.plot(df['time'], df['ini'], label="BTC price")? #?繪制第一個(gè)圖比特幣價(jià)格
ax1.set_ylabel('BTC price') #?加上標(biāo)簽
# 第二個(gè)直接對(duì)稱就行了
ax2 = ax1.twinx()#?在右邊增加一個(gè)Y軸
ax2.plot(df['time'], df['Ahr999'], 'r', label="ahr999")??#?繪制第二個(gè)圖Ahr999指數(shù),紅色
ax2.set_ylim([0, 50])# 設(shè)定第二個(gè)Y軸范圍
ax2.set_ylabel('ahr999')
plt.grid(color="k", linestyle=":")# 網(wǎng)格
fig.legend(loc="center")#圖例
plt.show()
跑起來(lái)看看效果,雖然丑了點(diǎn),但終于跑通了。
這樣就可以把所有指數(shù)都繪制到一張圖中,等等,三個(gè)甚至多個(gè)Y軸怎么加?這又是一個(gè)問(wèn)題,留給愛(ài)思考愛(ài)學(xué)習(xí)的你。
有了自己的數(shù)據(jù),建立自己的各個(gè)指數(shù),然后再放到圖形界面中,同時(shí)針對(duì)異常情況再自動(dòng)進(jìn)行提醒,比如要抄底了,要賣出了,用程序做出自己的晴雨表。
新聞名稱:python畫點(diǎn)圖的函數(shù) python如何畫點(diǎn)圖
當(dāng)前地址:http://www.rwnh.cn/article20/hicgjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、小程序開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)、軟件開(kāi)發(fā)、微信公眾號(hào)、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)