因为最近论文收尾需要画图,于是学了一些画图的东西在这里分享一下
linux ubuntu 下需安装下面三个包:Numpy, Scipy,Matplotlib
分别输入下面的代码进行安装:
(1)直线图
#coding:utf-8 import numpy as np import matplotlib.pyplot as plt x = [0, 1] #x轴 y = [0, 1] #y轴 plt.figure()#创建绘图对象 plt.ylabel('ACC@1',size=20)#y轴的坐标 size为字体大小 plt.xlabel('Iters',size=20)#x轴的坐标 plt.title('line',size=30)#标题 plt.plot(x, y,linewidth=3,c='r')#在当前对象进行绘图,c为颜色,linewidth为线的宽度 plt.show()#将当先图像显示出来 plt.savefig("1.jpg")#将图像保存下来
结果如图所示
(2)折线图
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt # X轴,Y轴数据 x = [0, 1, 2, 3, 4, 5, 6] y = [0.3, 0.4, 2, 5, 3, 4.5, 4] plt.figure(figsize=(8, 4)) # 创建绘图对象 plt.plot(x, y, "b--", linewidth=1) # 在当前绘图对象绘图(X轴,Y轴,蓝色虚线,线宽度) plt.xlabel("Time(s)") # X轴标签 plt.ylabel("Volt") # Y轴标签 plt.title("Line plot") # 图标题 plt.show() # 显示图 plt.savefig("line.jpg") # 保存图
结果如下图所示
(3)画两条线
# encoding=utf-8 import matplotlib.pyplot as plt from pylab import * #支持中文 # mpl.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['xtick.direction'] = 'in'#刻度在象限内部 plt.rcParams['ytick.direction'] = 'in' names = [0.1,0.2,0.3,0.5,0.8,1] x = range(len(names)) y = [0.476, 0.475, 0.475,0.474,0.473, 0.468] y1 = [0.674, 0.671, 0.682,0.681,0.684,0.686] #plt.plot(x, y, 'ro-') #plt.plot(x, y1, 'bo-') #pl.xlim(-1, 11) # 限定横轴的范围 plt.ylim(0.45, 0.7) # 限定纵轴的范围 plt.tick_params(labelsize=13) plt.plot(names, y, 'r--',linewidth = 3,label='ACC@1') plt.plot(names, y1, 'b--',linewidth = 3,label='ACC@5') plt.legend(loc=0, numpoints=1) leg = plt.gca().get_legend() ltext = leg.get_texts() plt.setp(ltext, fontsize=15) # 让图例生效,fontsize的含义是坐标刻度字体的大小 # plt.xticks(x, names, rotation=100)#rotation在此处是说左边刻度的倾斜程度 plt.margins(0) plt.subplots_adjust(bottom=0.15) plt.xlabel("$\\alpha$",size=18) #X轴标签,希腊字母的表示方式要加\\ plt.ylabel("ACC",size=18) #Y轴标签 # plt.title("A simple plot") #标题 plt.savefig('alpha.eps') plt.show()
结果如图所示
(4)柱状图
# -*- coding: utf-8 -*- import matplotlib.pyplot as plt import tensorflow as tf name_list = ['1', '2', '3'] num_list = [574.0, 320.0, 400] plt.bar(range(len(num_list)), num_list, color='rgb',width=0.2, tick_label=name_list) #width来调整柱的宽度 color来设置颜色 plt.show()
结果如图所示
(5)散点图
import matplotlib.pyplot as plt x_values=[1,2,3,4,5] y_values=[1,4,9,16,25] # s为点的大小 plt.scatter(x_values,y_values,s=100) # 设置图表标题并给坐标轴加上标签 plt.title("Scatter pic",fontsize=24) plt.xlabel("Value",fontsize=14) plt.ylabel("Scatter of Value",fontsize=14) # 设置刻度标记的大小 plt.tick_params(axis='both',which='major',labelsize=14) plt.show()
结果如图所示