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')