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()
View Code

 

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()
View Code

 

2.2 图2

posted @ 2020-01-15 10:26  米大头jason  阅读(216)  评论(0编辑  收藏  举报