matplotlib学习(2)
1.legend的学习(图例)
1.1 代码
import matplotlib.pyplot as plt import numpy as np x=np.linspace(-3,3,50) #从-1到1,共50个点 y1=2*x+1 y2=x**2 plt.figure() #fig图2,默认从上下来第二张图,也可加num=3,为fig3,和大小设置 #-----学习点------- l1,=plt.plot(x,y2,label='up') #注意逗号,一种特色的赋值 #plt.plot(x,y1) #也可以把数据在一张fig中显示 l2,=plt.plot(x,y1,color='red',linewidth=10,linestyle='--',label='down') #还可以设置,默认颜色是蓝色=blue,linewidth默认1 #plt.legend() #图例,空的自动填入,是up和down的赋值 plt.legend(handles=[l1,l2],loc='best',labels=['aaa','bbb']) #对l1和l2的label从新赋值,loc位置best可以自动调整最佳位置 #------------------ plt.xlim((-1,2)) #定义x轴从-1到2,默认为6个分度 plt.ylim((-2,3)) #定义y轴从-2到3 plt.xlabel('I am x') #定义坐标轴的文字说明 plt.ylabel('I am y') new_ticks=np.linspace(-1,2,5) #新调整的刻度,5个刻度,有4段 plt.xticks(new_ticks) #对y刻度进行对应修改,会覆盖原来的ylim的设置 plt.yticks([-2,-1.8,-1,1.22,3],['very bad','bad','normal','good','very good']) #正规字体 plt.show()
1.2 图1
2.双柱状图及上面的数字
2.1 代码
import matplotlib.pyplot as plt import numpy as np n=12 #定义有12跟bar柱 X=np.arange(n) Y1=(1-X/float(n))*np.random.uniform(0.5,1.0,n) Y2=(1-X/float(n))*np.random.uniform(0.5,1.0,n) #------学习要点 plt.bar(X,+Y1,facecolor='pink',edgecolor='white') #颜色设定 plt.bar(X,-Y2,facecolor='orange',edgecolor='white') #+和-代表y柱的向上和向下 for x,y in zip(X,Y1): plt.text(x+0.1,y+0.05,'%.2f'%y, ha='center',va='bottom') #+表示向上的柱 #x+0.1=x再向右0.1移动,y+0.05=y再向上移动0.05间隔,代表位置 #'%.2f'%y=代表输出y值,保留小数点后面2位的f=float(浮点数) #ha=horizontal alignment=水平对齐,居中=center #va=Vertical alignment=垂直对准,上面的是底部对准bottom,下面的是顶部对准top for x,y in zip(X,Y2): plt.text(x+0.1,-y-0.05,'%.2f'%y, ha='center',va='top') #+表示向下的柱 #向下的柱,是-y-0.05 #------------------- plt.xlim(-.5,n) plt.xticks(()) #清空x坐标刻度 plt.ylim(-1.25,1.25) plt.yticks(()) #清空y坐标刻度 plt.show()
2.2 图2