matplotlib画图

这篇随笔继续介绍matplotlib画图方面的知识

#把x坐标设置为ABCDE 

>>> x=np.random.randn (100)
>>> plt.plot(x.cumsum())
[<matplotlib.lines.Line2D object at 0x000000000EDBFF98>]
>>> plt.xticks (np.linspace (0,100,5),list('ABCDH'),fontsize=20)#利用sticks设置x坐标
([<matplotlib.axis.XTick object at 0x0000000012CC2668>, <matplotlib.axis.XTick object at 0x0000000012E410B8>, <matplotlib.axis.XTick object at 0x0000000012E41400>, <matplotlib.axis.XTick object at 0x000000000EBE1400>, <matplotlib.axis.XTick object at 0x000000000EBE12E8>], <a list of 5 Text xticklabel objects>)

>>> plt.yticks (np.linspace (-10,20,3),list(['min','0','max']),fontsize=20)#利用yticks设置x坐标
([<matplotlib.axis.YTick object at 0x0000000012CC27F0>, <matplotlib.axis.YTick object at 0x0000000012CC25C0>, <matplotlib.axis.YTick object at 0x0000000012E41278>], <a list of 3 Text yticklabel objects>)
>>> plt.show()

>>> #面向对象
>>> axes=plt.subplot (111)
>>> axes.plot(x.cumsum())
[<matplotlib.lines.Line2D object at 0x0000000013287320>]
>>> axes.set_xticks([0,25,50,75,100])#设置刻度值,表示分为5部分
[<matplotlib.axis.XTick object at 0x00000000131CD080>, <matplotlib.axis.XTick object at 0x00000000131B5BA8>, <matplotlib.axis.XTick object at 0x00000000131B5588>, <matplotlib.axis.XTick object at 0x0000000013287B38>, <matplotlib.axis.XTick object at 0x0000000013287FD0>]
>>> axes.set_xticklabels(list('abcde'))#设置标签
[Text(0,0,'a'), Text(0,0,'b'), Text(0,0,'c'), Text(0,0,'d'), Text(0,0,'e')]、
>>> plt.show()

>>> #正弦余弦
>>> #LaTeX语法,用π等表达式在图表写上希腊字母
>>> x=np.arange(-10,10,0.1)
>>> x=np.arange(-np.pi ,np.pi,0.01)
>>> plt.plot(np.sin(x))
[<matplotlib.lines.Line2D object at 0x00000000228273C8>]
>>> plt.plot(np.cos(x))
[<matplotlib.lines.Line2D object at 0x0000000022827470>]
>>> plt.yticks ([-1,0,1],['min','0','max'])
([<matplotlib.axis.YTick object at 0x0000000022356AC8>, <matplotlib.axis.YTick object at 0x00000000223565F8>, <matplotlib.axis.YTick object at 0x000000001350EA58>], <a list of 3 Text yticklabel objects>)
>>> plt.xticks ([-np.pi ,-np.pi/2,-np.pi/2 ,np.pi])
([<matplotlib.axis.XTick object at 0x0000000022356198>, <matplotlib.axis.XTick object at 0x000000001350ECC0>, <matplotlib.axis.XTick object at 0x000000001350E6A0>, <matplotlib.axis.XTick object at 0x00000000228374A8>], <a list of 4 Text xticklabel objects>)
>>> plt.show()

>>> plt.xticks ([0,157.25,157.25*2,157.25*3,157.25*4],['-$\pi$','-$\pi/2$','$\pi/2$','$\pi$'])
([<matplotlib.axis.XTick object at 0x0000000012F19358>, <matplotlib.axis.XTick object at 0x0000000012F190F0>, <matplotlib.axis.XTick object at 0x0000000012F19710>, <matplotlib.axis.XTick object at 0x0000000022BA5390>, <matplotlib.axis.XTick object at 0x0000000022BA5860>], <a list of 4 Text xticklabel objects>)
>>> #用$\pi$表示希腊字母π
>>> plt.show()
>>> #用$\delta$表示希腊字母△
>>> #用$\sigma$表示希腊字母西格玛
>>> #用$\alpha$表示希腊字母α
>>> x=np.arange(-10,10,0.1)

>>> x=np.random.randint
>>> x=np.random.randint(0,10,10)
>>> plt.hist(x,normed=True,orientation='horizontal')#控制直方图的方向
(array([0.125, 0. , 0. , 0.375, 0. , 0.25 , 0. , 0.125, 0.125,
0.25 ]), array([0. , 0.8, 1.6, 2.4, 3.2, 4. , 4.8, 5.6, 6.4, 7.2, 8. ]), <a list of 10 Patch objects>)
>>> plt.show()
>>> #绘制直方图、

#饼图

 

 


>>> p=np.array([0.7,0.7,0.1])
>>> plt.pie(p,labels=['dog','cat','otther'])
([<matplotlib.patches.Wedge object at 0x0000000020F31C50>, <matplotlib.patches.Wedge object at 0x0000000020F3E198>, <matplotlib.patches.Wedge object at 0x0000000020F3E668>], [Text(0.114981,1.09397,'dog'), Text(-0.339919,-1.04616,'cat'), Text(1.07596,-0.228703,'otther')])

>>> plt.show()

 


>>> plt.pie(p,labels=['dog','cat','otther'],autopct='%1.2f%%')
([<matplotlib.patches.Wedge object at 0x00000000212A2E80>, <matplotlib.patches.Wedge object at 0x00000000214455C0>, <matplotlib.patches.Wedge object at 0x0000000021445CC0>], [Text(0.114981,1.09397,'dog'), Text(-0.339919,-1.04616,'cat'), Text(1.07596,-0.228703,'otther')], [Text(0.0627171,0.596713,'46.67%'), Text(-0.18541,-0.570634,'46.67%'), Text(0.586889,-0.124747,'6.67%')])
>>> plt.show()

 

 


>>> #散点图
>>> #散点图需要两个参数(x,y)
>>> x=np.random.rand(100)
>>> y=np.random.rand(100)

>>> size=np.random.randint(0,100,100)
>>> plt.scatter(x,y,color='r',s=size)#s代表大小,color可以指定颜色
<matplotlib.collections.PathCollection object at 0x0000000020F0F5C0>

>>> plt.show ()

 


>>> #玫瑰图
>>> #图形文字

#text为坐标值 

 #gigtext()为相对值

 

 

>>> #绘制3D图形
>>> from mpl_toolkits.mplot3d.axes3d import Axes3D
>>> x=np.linspace (0,7,0.01)
>>> y=np.linspace (-3.5,3.5,0.01)
>>> x=np.linspace (0,7,50)
>>> ####################
>>> x=np.arange(0,7,0.01)
>>> y=np.arange(0,10,0.01)

>>> plt.show()

# 无数条线组成一个面 

 

 

 cmap可以设置颜色 

 

####################################
>>> import pandas as np
>>> import numpy as np
>>> import pandas as pd
>>> import matplotlib.pyplot as plt
>>> from mpl_toolkits.mplot3d.axes3d import Axes3D#绘画3D图形的包
>>> x=np.arange(1,10,0.1)
>>> y=np.arange(1,10,0.1)
>>> def make_z(x,y):
return np.sin(x)+np.cos(y)

>>> z=make_z(x,y)

>>> #玫瑰图
>>> def show_rose(values,title):
n=8
angle = np.arange(0,2*np.pi,2*np.pi/n)
radius=np.array(values)
#axis:轴(线,y)轴
#axes:整个画面
plt.axes ([0,0,1,1],polar = True)
plt.bar(angle,radius)

>>> v = [1,2,3,4,5,6,7,8]

>>> show_rose(v,'test')
>>> plt.show()

#默认所有区块颜色一致

>>> def show_rose(values,title):
n=8
angle = np.arange(0,2*np.pi,2*np.pi/n)
radius=np.array(values)
#axis:轴(线,y)轴
#axes:整个画面
plt.axes ([0,0,2,3],polar = True)#变为2*3倍
color = np.random.random(size= 24).shape((8,3))#设置颜色
plt.bar(angle,radius,color = color)
plt.tilte(title,loc='left')#设置标题

 

>>> def show_rose(values,title):
n=8
angle = np.arange(0,2*np.pi,2*np.pi/n)
radius=np.array(values)
#axis:轴(线,y)轴
#axes:整个画面
plt.axes ([0,0,2,2],polar = True)#变为2*2倍
color = np.random.random(size= 24).reshape((8,3))#设置颜色
plt.bar(angle,radius,color = color)
plt.tilte(title,loc='left')#设置标题

>>> v = [1,2,3,4,5,6,7,8]

>>> def show_rose(values,title):
n=8
angle = np.arange(0,2*np.pi,2*np.pi/n)
radius=np.array(values)
#axis:轴(线,y)轴
#axes:整个画面
plt.axes ([0,0,2,2],polar = True)#变为2*2倍
color = np.random.random(size= 24).reshape((8,3))#设置颜色
plt.bar(angle,radius,color = color)
plt.title(title,loc='left')#设置标题

>>> show_rose(v,'test')
>>> plt.show()

#测试四周台风强度,把数据分成8份每45度为一组

 

posted @ 2018-07-31 20:26  你的雷哥  阅读(635)  评论(0编辑  收藏  举报