欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

matplotlib学习笔记(一)

程序员文章站 2022-03-19 23:43:59
...

图标的基本元素

df=pd.DataFrame(np.random.rand(10,2),columns=['A','B'])
f=plt.figure(figsize==(10,10)) #创建图表窗口,设置窗口大小

plt.title('aa')
plt.xlabel('x')
plt.ylabel('y')
plt.lengend(loc='upper right')

#显示图例,loc表示位置
#'best'自适应方式 0
#'upper right' 1
#'upper left' 2
#'lower left' 3
#'lower right' 4
#'right' 5
#'center left' 6
#'center right' 7
#'lower center' 8
#'upper center' 9
#'center' 10


边界

plt.xlim([0,12]) #x轴边界
plt.xticks(range(10))#设置x刻度
plt.yticks([0,0.2,0.4,0.6]) #设置y刻度
fig.set_xticklabels('%.1f'%i for i in range(10)) #x轴可刻度标签



其他元素可视性
plt.grid(True,linestyle='--',color='gray',linewidth='0.5',axis='both')#格网
plt.tick_params(bottom='on',top='off',left='on',right='off')#刻度显示

frame=plt.gca()
#关闭坐标轴
frame.axes.get_xaxis().set_visible(False)
frame.axes.get_yaxis().set_visible(False)
#x/y轴不可见



图表的样式参数plot

s.plot(linestyle=’–’,marker=’.’)

linestyle参数

‘-’
‘–’
‘-.’
‘:’

marker参数


‘o’ 圆圈  
‘.’ 点
‘D’ 菱形  
‘s’ 正方形
‘h’ 六边形1    
‘* ’    星号
‘H’ 六边形2    
‘d’ 小菱形
‘_’ 水平线 
‘v’ 一角朝下的三角形
‘8’ 八边形 
‘<’ 一角朝左的三角形
‘p’ 五边形 
‘>’ 一角朝右的三角形
‘,’ 像素  
‘^’ 一角朝上的三角形
‘+’ 加号  
‘\‘竖线
‘x’ X        
None’   无   

颜色color

‘b’
蓝色
‘g’
绿色
‘r’
红色
‘c’
青色
‘m’
品红
‘y’
黄色
‘k’
黑色
‘w’
白色

线条样式和颜色组合在一个单一的格式字符串中,如在’bo’为蓝色圆圈


整体风格样式

import matplotlib.style as psl
print(plt.style.available #查看样式列表
psl.use('ggplot')

刻度、注解、图表输出

刻度

from matplotlib.ticker import MultipleLocator,FormatStrFormatter

t=np.arange(0.0,100.0,1)
s=np.sin(0.1*np,pi*t)*np.exp(-t*0.01)
ax=plt.subplot(111)
plt.plot(t,s,'--*')
plt.grid(True,linestyle='--',color='gray',linewidth='0.5',axis='both')

xmajorLocator=MultipleLocator(10) #将x主刻度标签设置为10的倍数
xmajorFormatter=FormatStrFormatter('%.0f')# 设置x轴标签文本样式
xminorLocator=MultipleLocator(5)#将x轴次刻度标签设置为5的倍数
ymajorLocator=MultipleLocator(0.5)#将y轴主刻度设置为0.5的倍数


ax.xaxis.set_major_locator(xmajorLocator) #设置x轴主刻度


ax.xaxis.grid(True,which='both')#x坐标轴的网格使用主刻度
ax.yaxis.grid(True,which='monor')#y坐标轴的网格使用次刻度

注解

df=pd.DataFrame(np.random.randn(10,2))
df.plot(style='--o')
plt.text(5,0.5,'hahaha',fontsize=10)

图表输出

plt.savefig('文件保存路径',dpi=400,facecolor='g',edgecolor='b')

子图plt.subplot

方法一:

fig=plt.figure(figsize=(10,6),facecolor='gray')
ax1=fig.add_subplot(2,2,1)
plt.plot(np.random.rand(50).cumsum(),'k--')
plt.plot(np.random.rand(50).cumsum(),'b--')

ax2=fig.add_subplot(2,2,2)
ax2.hist(np.random.rand(50),alpha=0.5)

方法二:

fig,axes=plt.subplots(2,3,figsize=(10,4),sharex=True,sharey=True)
#sharex是否共享刻度
ts=pd.Series(np.random.randn(1000).cumsum())

plt.subplots_adjust(wspace=0,hspace=0.5)
#wspace,hspace用于控制宽度和高度的百分比

ax1=axes[0,1]
ax1.plot(ts)

方法三:

#多系列图,分别绘制
df=pd.DataFrame(np.random.randn(1000,4),index=ts.index,columns=list('ABCD'))
df=df.cumsum()
df.plot(style='--',alpha=0.4,grid=True,figsize=(8,8),subplots=True,layout=(2,3),sharex=True)
#layout是布局,(2,3)表示两行三列

基本图表绘制plt.plot()

Series直接生成图表

ts=pd.Series(np.random.randn(1000),index=pd.date_range('1/1/2000',periods=1000))
ts=ts.cumsum()
ts.plot(kind='line', #line,bar,barh..(折线图,柱状图,柱状图-横。。)
        label='dwd',
        style='--',#风格字符串,这里包括linestyle,marker,color
        alpha=0.4,#透明度
        use_index=True,#将索引用为刻度标签
        rot=45,#旋转刻度标签
        grid=True,
        ylim=[-50,50],#xlim,ylim是x,y的边界
        yticks=list(range(-50,50,10)),#
        figsize=(8,8),
        title='text',
        legend=True,#是否显示图例
        subplots=True)

DataFrame直接生成图表

df=pd.DataFrame(np.random.randn(1000,4),index=ts.index,columns=list('ABCD'))
df=df.cumsum()
df.plot(kind='line',
        style='--',
        alpha=0.4,
        use_index=True,
        rot=45,
        grid=True,
        figsize=(8,8),
        title='text',
        legend=True,
        subplots=True,
        colormap='Greens')