為避免中文顯示出錯(cuò),需導(dǎo)入matplotlib.pylab庫
創(chuàng)新互聯(lián)公司是一家集成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)站頁面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)絡(luò)公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。
1.2.1 確定數(shù)據(jù)
1.2.2 創(chuàng)建畫布
1.2.3 添加標(biāo)題
1.2.4 添加x,y軸名稱
1.2.5 添加x,y軸范圍
1.2.6 添加x,y軸刻度
1.2.7 繪制曲線、圖例, 并保存圖片
保存圖片時(shí),dpi為清晰度,數(shù)值越高越清晰。請注意,函數(shù)結(jié)尾處,必須加plt.show(),不然圖像不顯示。
繪制流程與繪制不含子圖的圖像一致,只需注意一點(diǎn):創(chuàng)建畫布。
合理調(diào)整figsize、dpi,可避免出現(xiàn)第一幅圖橫軸名稱與第二幅圖標(biāo)題相互遮蓋的現(xiàn)象.
2.2.1 rc參數(shù)類型
2.2.2 方法1:使用rcParams設(shè)置
2.2.3 方法2:plot內(nèi)設(shè)置
2.2.4 方法3:plot內(nèi)簡化設(shè)置
方法2中,線條形狀,linestyle可簡寫為ls;線條寬度,linewidth可簡寫為lw;線條顏色,color可簡寫為c,等等。
其中有兩個(gè)非常漂亮的指數(shù)函數(shù)圖就是用python的matplotlib畫出來的。這一期,我們將要介紹如何利用python繪制出如下指數(shù)函數(shù)。
圖 1 a1圖 1 a1
我們知道當(dāng)0 ,指數(shù)函數(shù) 是單調(diào)遞減的,當(dāng)a1 時(shí),指數(shù)函數(shù)是單調(diào)遞增的。所以我們首先要定義出指數(shù)函數(shù),將a值做不同初始化
import math
...
def exponential_func(x, a): #定義指數(shù)函數(shù)
y=math.pow(a, x)
return y
然后,利用numpy構(gòu)造出自變量,利用上面定義的指數(shù)函數(shù)來計(jì)算出因變量
X=np.linspace(-4, 4, 40) #構(gòu)造自變量組
Y=[exponential_func(x) for x in X] #求函數(shù)值
有了自變量和因變量的一些散點(diǎn),那么就可以模擬我們平時(shí)畫函數(shù)操作——描點(diǎn)繪圖,利用下面代碼就可以實(shí)現(xiàn)
import math
import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.axisartist as axisartist #導(dǎo)入坐標(biāo)軸加工模塊
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
fig=plt.figure(figsize=(6,4)) #新建畫布
ax=axisartist.Subplot(fig,111) #使用axisartist.Subplot方法創(chuàng)建一個(gè)繪圖區(qū)對象ax
fig.add_axes(ax) #將繪圖區(qū)對象添加到畫布中
def exponential_func(x, a=2): #定義指數(shù)函數(shù)
y=math.pow(a, x)
return y
X=np.linspace(-4, 4, 40) #構(gòu)造自變量組
Y=[exponential_func(x) for x in X] #求函數(shù)值
ax.plot(X, Y) #繪制指數(shù)函數(shù)
plt.show()
圖 2 a=2
圖2雖簡單,但麻雀雖小五臟俱全,指數(shù)函數(shù)該有都有,接下來是如何讓其看起來像我們在作圖紙上面畫的那么美觀,這里重點(diǎn)介紹axisartist 坐標(biāo)軸加工類,在的時(shí)候我們已經(jīng)用過了,這里就不再多說了。我們只需要在上面代碼后面加上一些代碼來將坐標(biāo)軸好好打扮一番。
圖 3 a1 完整代碼# -*- coding: utf-8 -*-圖 3 a1 完整代碼# -*- coding: utf-8 -*-"""Created on Sun Feb 16 10:19:23 2020project name:@author: 帥帥de三叔"""import mathimport numpy as npimport matplotlib.pyplot as pltimport mp
1、首先點(diǎn)擊鍵盤 win+r,打開運(yùn)行窗口;在窗口中輸入“cmd",點(diǎn)擊確定,打開windows命令行窗口。
2、在cmd命令行窗口中輸入"python",進(jìn)入python交互窗口。
3、引入matplotlib模塊的pyplot()函數(shù),并重命名為py;引入numpy模塊,并重命名為np。
4、使用函數(shù)np.arrange(-5,5,0.01)創(chuàng)建變量x的取值范圍,是一個(gè)一維數(shù)組,使用y=2**x,創(chuàng)建y是與自變量x相對應(yīng)的一維數(shù)組。
5、使用函數(shù)plt.plot(x,y)繪制指數(shù)函數(shù)y=2**x的函數(shù)圖像。
6、最后使用函數(shù)plt.show()顯示整個(gè)一元一次函數(shù)的圖像,就完成了。
raw_input獲取的輸入是字符串,不能直接用np.array,需要用split進(jìn)行切分,然后強(qiáng)制轉(zhuǎn)化成數(shù)值類型,才能用plot函數(shù)
我把你的代碼稍微修改了一下,可能不太漂亮,不過能運(yùn)行了
x=[1,2,3]
a = raw_input('function')
a = a.split(' ')#依空格對字符串a(chǎn)進(jìn)行切分,如果是用逗號分隔,則改成a.split(',')
b = []
for i in range(len(a)):#把切分好的字符強(qiáng)制轉(zhuǎn)化成int類型,如果是小數(shù),將int改為float
b.append(int(a[i]))
plt.plot(x, b, label='x', color="green", linewidth=1)