pre
創(chuàng)新互聯(lián)是一家專業(yè)提供嵊泗企業(yè)網站建設,專注與成都做網站、成都網站制作、H5網站設計、小程序制作等業(yè)務。10年已為嵊泗眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網站建設公司優(yōu)惠進行中。
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
輸入以下代碼導入我們用到的函數庫。
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(0,5,0.1);
y=np.sin(x);
plt.plot(x,y)
采用剛才代碼后有可能無法顯示下圖,然后在輸入以下代碼就可以了:
plt.show()
為避免中文顯示出錯,需導入matplotlib.pylab庫
1.2.1 確定數據
1.2.2 創(chuàng)建畫布
1.2.3 添加標題
1.2.4 添加x,y軸名稱
1.2.5 添加x,y軸范圍
1.2.6 添加x,y軸刻度
1.2.7 繪制曲線、圖例, 并保存圖片
保存圖片時,dpi為清晰度,數值越高越清晰。請注意,函數結尾處,必須加plt.show(),不然圖像不顯示。
繪制流程與繪制不含子圖的圖像一致,只需注意一點:創(chuàng)建畫布。
合理調整figsize、dpi,可避免出現第一幅圖橫軸名稱與第二幅圖標題相互遮蓋的現象.
2.2.1 rc參數類型
2.2.2 方法1:使用rcParams設置
2.2.3 方法2:plot內設置
2.2.4 方法3:plot內簡化設置
方法2中,線條形狀,linestyle可簡寫為ls;線條寬度,linewidth可簡寫為lw;線條顏色,color可簡寫為c,等等。
1,xlable,ylable設置x,y軸的標題文字。
2,title設置標題。
3,xlim,ylim設置x,y軸顯示范圍。
plt.show()顯示繪圖窗口,通常情況下,show()會阻礙程序運行,帶-wthread等參數的環(huán)境下,窗口不會關閉。
plt.saveFig()保存圖像。
面向對象繪圖
1,當前圖表和子圖可以用gcf(),gca()獲得。
subplot()繪制包含多個圖表的子圖。
configure subplots,可調節(jié)子圖與圖表邊框距離。
可以通過修改配置文件更改對象屬性。
圖標顯示中文
1,在程序中直接指定字體。
2, 在程序開始修改配置字典reParams.
3,修改配置文件。
Artist對象
1,圖標的繪制領域。
2,如何在FigureCanvas對象上繪圖。
3,如何使用Renderer在FigureCanvas對象上繪圖。
FigureCanvas和Render處理底層圖像操作,Artist處理高層結構。
分為簡單對象和容器對象,簡單的Aritist是標準的繪圖元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器類型包含許多簡單的的 Aritist對象,使他們構成一個整體,例如Axis,Axes,Figure等。
直接創(chuàng)建Artist對象進項繪圖操作步奏:
1,創(chuàng)建Figure對象(通過figure()函數,會進行許多初始化操作,不建議直接創(chuàng)建。)
2,為Figure對象創(chuàng)建一個或多個Axes對象。
3,調用Axes對象的方法創(chuàng)建各類簡單的Artist對象。
Figure容器
如何找到指定的Artist對象。
1,可調用add_subplot()和add_axes()方法向圖表添加子圖。
2,可使用for循環(huán)添加柵格。
3,可通過transform修改坐標原點。
Axes容器
1,patch修改背景。
2,包含坐標軸,坐標網格,刻度標簽,坐標軸標題等內容。
3,get_ticklabels(),,get-ticklines獲得刻度標簽和刻度線。
1,可對曲線進行插值。
2,fill_between()繪制交點。
3,坐標變換。
4,繪制陰影。
5,添加注釋。
1,繪制直方圖的函數是
2,箱線圖(Boxplot)也稱箱須圖(Box-whisker Plot),是利用數據中的五個統(tǒng)計量:最小值、第一四分位
數、中位數、第三四分位數與最大值來描述數據的一種方法,它可以粗略地看出數據是否具有對稱性以及分
布的分散程度等信息,特別可以用于對幾個樣本的比較。
3,餅圖就是把一個圓盤按所需表達變量的觀察數劃分為若干份,每一份的角度(即面積)等價于每個觀察
值的大小。
4,散點圖
5,QQ圖
低層繪圖函數
類似于barplot(),dotchart()和plot()這樣的函數采用低層的繪圖函數來畫線和點,來表達它們在頁面上放置的位置以及其他各種特征。
在這一節(jié)中,我們會描述一些低層的繪圖函數,用戶也可以調用這些函數用于繪圖。首先我們先講一下R怎么描述一個頁面;然后我們講怎么在頁面上添加點,線和文字;最后講一下怎么修改一些基本的圖形。
繪圖區(qū)域與邊界
R在繪圖時,將顯示區(qū)域劃分為幾個部分。繪制區(qū)域顯示了根據數據描繪出來的圖像,在此區(qū)域內R根據數據選擇一個坐標系,通過顯示出來的坐標軸可以看到R使用的坐標系。在繪制區(qū)域之外是邊沿區(qū),從底部開始按順時針方向分別用數字1到4表示。文字和標簽通常顯示在邊沿區(qū)域內,按照從內到外的行數先后顯示。
添加對象
在繪制的圖像上還可以繼續(xù)添加若干對象,下面是幾個有用的函數,以及對其功能的說明。
?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, ...),添加圖列說明
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)