- 绘制以下四个函数及对应导数的函数图形。x轴从-5到5,步长为0.2;y轴自动设置。4行2列8个图,同列共享x轴。注意:Figure的名称必须为fig1不要使用plt.show, 会导致保存图像不正确。𝑒^x 采用np.exp()函数,所有数值保持小数点后6位精度
fig1,ax=plt.subplots(4,2,sharex=True)
x=np.arange(-5,5,0.2)
x=np.round(x,6)
y00_=1/(1+np.exp(-x))
y00=np.round(y00_,6)
y01_=y00*(1-y00)
y01=np.round(y01_,6)
y10_=np.tanh(x)
y10=np.round(y10_,6)
y11_=1-y10*y10
y11=np.round(y11_,6)
y20_=np.exp(-(x*x)/2)
y20=np.round(y20_,6)
y21_=(-x)*(np.exp(-(x*x)/2))
y21=np.round(y21_,6)
y30_=x
y30=np.round(y30_,6)
y31_=y00/y00#注意不能直接写1,因为1是标量,要把他变成矢量;也不能写要y30/y30,因为0不能做除数
y31=np.round(y31_,6)
ax[0][0].plot(x,y00)
ax[0][1].plot(x,y01)
ax[1][0].plot(x,y10)
ax[1][1].plot(x,y11)
ax[2][0].plot(x,y20)
ax[2][1].plot(x,y21)
ax[3][0].plot(x,y30)
ax[3][1].plot(x,y31)
2.参考教材图形8.22,将其修改为2行1列,设置为共享x轴。
注意:注意:
- Figure的名称为fig2
- 不要使用plt.show, 会导致保存图像不正确。
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.patches as patches
plt.figure(figsize=(8,3))
x=np.arange(-10,10,0.1)
s=1.0/(1+np.exp(-x))
y=np.clip(x,a_min=0.,a_max=None)
fig2,ax = plt.subplots(2,1,sharex=True)
ax[0].plot(x,s,color='r')
ax[0].text(-5.0,0.9,r'$y=ReLU(x)$',fontsize=13)
ax[1].plot(x,y,color='g')
ax[1].text(-3.0,0.9,r'$y=ReLU(x)$',fontsize=13)
3.全球1960年至2017年各个国家的GDP数据gdpallyear_color_en.csv,取每年前10名的国家,绘制横向柱状图,并展示前10名的数据随年份变化而动态变化的情况。年份作为title。生成p3.gif动态图,帧率fps=5
注意:注意:
- Figure的名称为fig3
- 不要使用plt.show, 会导致保存图像不正确。
- 生成图像名称为p3.gif
- 给定的代码不能删除
- 参考代码:
import imageio
images = []
for i in range(10):
# draw a Figure
plt.savefig(abspath('gdp.png'))
images.append(imageio.imread(abspath('gdp.png')))
imageio.mimsave(abspath("p3.gif"), images, fps=5)
import matplotlib.pyplot as plt
import pandas as pd
import imageio
import pickle
import io
images=[]
df=pd.read_csv(abspath('gdpallyear_color_en.csv'),header=None)
buf = io.BytesIO()
for year in range(1960,2018) :
plt.cla()
data=df[df[4]==year].head(10)[::-1]
ax=data[3].plot(kind='barh',color=data[5])
ax.set_yticklabels(data[1])
ax.set_title(str(year))
pickle.dump(plt.gca(), buf)
plt.savefig(abspath('gdp.png'))
images.append(imageio.imread(abspath('gdp.png')))
imageio.mimsave(abspath("p3.gif"), images, fps=5)