Matplotlib画图基础
2017-04-30 17:31
302 查看
Matplotlib画图
目录:
1.根据数据画曲线图
2.带箭头图
3.3D立体图
4.多子图结构
5.饼状图
6.柱状图
2.===annotat格式可参阅网上资料。在通过annotate()函数画一个标注的箭头;其中的两个位置是箭头和箭尾的坐标,后面是颜色等信息
3. 3D立体图
画多子图结构
多子图结构画法:
5.画饼状图
6.画柱状图
目录:
1.根据数据画曲线图
2.带箭头图
3.3D立体图
4.多子图结构
5.饼状图
6.柱状图
import numpy as np import matplotlib.pyplot as plt %matplotlib inline data= np.loadtxt('/home/robot_lcl/lcl_file/train_log/train.log.test') #print data x=data[:,0] y1=data[:,3] y2=data[:,2] #plt.figure(1,figsize=(3,2)) fig = plt.figure(figsize=(3,2)) ax1 = fig.add_subplot(111) plot1, = ax1.plot(x, y1, 'b', label='$loss') ax1.set_ylabel('test loss') ax1.set_xlabel('iteration') ax2 = ax1.twinx() plot2, = ax2.plot(x, y2, 'r',label='$accuracy') ax2.set_ylabel('test accuracy') plt.legend([plot1, plot2], ( 'loss','accuracy' ) , 'upper center',bbox_to_anchor=(0.85, -0.05),shadow=True, ncol=2) #plt.legend(loc='upper center', bbox_to_anchor=(0.8, -0.05), shadow=True, ncol=2) plt.savefig('/home/robot_lcl/lcl_file/train_log/accu.png',format='png') plt.show()
2.===annotat格式可参阅网上资料。在通过annotate()函数画一个标注的箭头;其中的两个位置是箭头和箭尾的坐标,后面是颜色等信息
import matplotlib.pyplot as plt fig = plt.figure(5) plt.figure(1,figsize=(3,2)) #控制宽度和高度; ax = plt.subplot(111) ann = ax.annotate("Test", xy=(0.2,0.2), xytext=(0.8,0.8), size=20, va="center", ha="center", bbox=dict(boxstyle="round4", fc="w"), #字体大小,位置,边框以及前景色 arrowprops=dict(arrowstyle="-|>",connectionstyle="arc3,rad=0.2",fc="r") #曲线,箭头红色 ) ax.grid(True) plt.show()
<matplotlib.figure.Figure at 0x7ff31dee1e90>
3. 3D立体图
import numpy as np import matplotlib.pyplot as plt import mpl_toolkits.mplot3d x,y=np.mgrid[-2:2:20j,-2:2:20j] z=x*np.exp(-x**2-y**2) ax=plt.subplot(111,projection='3d') ax.plot_surface(x,y,z,rstride=2,cstride=1,cmap=plt.cm.coolwarm,alpha=0.8) ax.set_xlabel('x') ax.set_ylabel('y') ax.set_zlabel('z') plt.show()
画多子图结构
from matplotlib import pyplot as plt import numpy as np t=np.arange(0, 5, 0.2) #类似python里的range fig=plt.figure() #行,列,序号 ax1 = fig.add_subplot(221) ax2 = fig.add_subplot(222) ax3 = fig.add_subplot(212) ax1.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^') ax1.grid(True) ax1.set_title("plot") ax2.semilogy(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^') ax2.grid(True) ax2.set_title("ylog") ax3.semilogy(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^') ax3.grid(True) ax3.set_title('loglog') fig.suptitle('normal vs ylog vs loglog') #大图的标题 fig.subplots_adjust(hspace=0.4) #控制图3和上两个图间距; plt.show()
多子图结构画法:
from matplotlib import pyplot as plt import numpy as np t=np.arange(0, 5, 0.2) #类似python里的range fig=plt.figure() #行,列,序号 ax1 = fig.add_subplot(321) ax2 = fig.add_subplot(322) ax3 = fig.add_subplot(312) ax4 = fig.add_subplot(325) ax5 = fig.add_subplot(326)
5.画饼状图
plt.figure(1,figsize=(3, 3)) sizes = [120,30,59] labels = 'GL', 'GR', 'GS' colors = ['red','yellowgreen','lightskyblue'] explode=(0.06, 0, 0) patches, l_texts, p_texts = plt.pie(sizes, explode=explode, labels=labels, colors=colors,labeldistance=1.1,autopct='%2.1f%%', shadow=True, startangle=90, pctdistance=0.6) # labeldistance 标签距圆心1.1倍半径, autopct 2位整数,1位小数; startangle第一块起始角度,逆时针90开始; # pctdistance百分比距离圆心位置; plt.axis('equal')#设置 XY轴刻度一致,保证图是 b210 圆的; #plt.legend() # 图例 #patches, l_texts, p_texts= 设置标签,比例数字显示的大小; for t in l_texts: t.set_size(10) for t in p_texts: t.set_size(10) plt.show()
6.画柱状图
import matplotlib.pyplot as plt; import numpy as np feat = [0.6,0.8,0.4] print feat plt.figure(num=1,figsize=(2.5, 2)) method = ('Left','Right', 'Go') x_pos = np.arange(3) #plt.barh(range(len(feat)), feat) plt.bar(x_pos,feat,align = 'center', alpha = 0.5,color='r',width=0.3) plt.xticks(x_pos,method,fontsize =8) plt.yticks(fontsize =8) # change the num axis size plt.title('Output',size=8) #plt.ylabel("prob") plt.grid(True) #网格线 for x, y in zip(x_pos,feat): plt.text(x,y+0.02, '%.2f' % y, ha='center', va='bottom') # 将数字加在各个柱状图上; plt.ylim(0,1.1) #plt.savefig('/home/robot_lcl/Desktop/picture/p.png',format='png') plt.show()
[0.6, 0.8, 0.4]
import matplotlib.pyplot as plt data = [5, 20, 15, 25, 10] plt.figure(num=1,figsize=(2.5, 2)) plt.barh(range(len(data)), data) plt.show()
相关文章推荐
- matplotlib基础——令画图时显示中文的方法
- matplotlib画图基础,华氏温度到摄氏温度的转换
- 【转】matplotlib画图时的中文设置
- matplotlib画图(5)
- matplotlib绘图基础
- python 的 matplotlib画图 画曲线图
- matplotlib 画图 三维图
- matplotlib画图(3)
- Matplotlib 基础
- matplotlib画图(5)
- python matplotlib画图 画多个子图
- matplotlib画图(4)
- Matplotlib关于以时间为横坐标画图
- matplotlib 画图 华氏度-摄氏度转化
- matplotlib画图
- Python画图工具matplotlib的使用(图形并茂)
- matplotlib画图(3)
- matplotlib 模块 画图 例2
- matplotlib画图一些属性
- Python之Matplotlib画图方法