修饰

前言

此处简要介绍Matplotlib画图的常用修饰手法及使用。
包括网格、图例、坐标轴的范围、坐标轴的刻度、添加坐标轴、注释、文字和Tex数学公式。

网格

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(1,10,1)
fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(x,x*2)
ax.grid(color='g')
plt.show()

展示

网格展示

图例

代码一

 import matplotlib.pyplot as plt
import numpy as np

x = np.arange(1,11,1)

plt.plot(x,x*2,label="Noramal")
plt.plot(x,x*3,label="Fast")
plt.plot(x,x*4,label="Faster")
plt.legend()#添加图例(有很多参数)
#plt.legend(loc=1)#添加图例(有很多参数)
#loc为0(智能化),1,2,3,4
#plt.legend(pcol=3)#分成几列
#也可以直接在legend里写图例
#plt.legend(['Normal','Fast','Faster'])
plt.show()

展示一

图例

代码二

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(1,11,1)
#面向对象方法
fig = plt.figure()
ax = fig.add_subplot(111)
l,=plt.plot(x,x,label='Inline label')

# 写法一:ax.legend(['ax','lenged'])
# 写法二:l.set_label(['ax','lenged'])
# 写法三:l,=plt.plot(x,x,label='Inline label')
ax.legend()
fig.show()

展示二

图例二

坐标轴的范围

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-10,11,1)
plt.plot(x,x*x)
plt.axis([-5,5,20,60])#x轴的范围和y轴的范围
plt.xlim([-5,5])#只管x轴不管y轴
plt.ylim([-5,5])#只管y轴不管x轴
plt.xlim(xmin=-5,xmax=5)
plt.xlim(xmin=-5)#只调整一边
plt.show()

展示

坐标轴的范围

坐标轴的刻度

import matplotlib.pyplot as plt
import matplotlib as npl
import numpy as np
import datetime
x = np.arange(1,11,1)

#ax = plt.plot(x,x)
#ax = plt.gca()#获取当前坐标轴
#ax.locator_params(nbins=20)#nbins指坐标轴有多少格(x,y轴)
ax.locator_params('x',nbins=20)#nbins指坐标轴有多少格
#ax.locator_params('y'nbins=20)#nbins指坐标轴有多少格
#plt.show()

#plt调整方法
#plt.locator_params一样

#日期的调整

fig = plt.figure()

start = datetime.datetime(2015,1,1)
stop = datetime.datetime(2016,1,1)
delta = datetime.timedelta(days=1)

dates = npl.dates.drange(start,stop,delta)

y = np.random.rand(len(dates))

ax = plt.gca()

ax.plot_date(dates,y,linestyle='-',marker='')
date_format = npl.dates.DateFormatter('%Y-%m-%d')#中文日期
ax.xaxis.set_major_formatter(date_format)#进行设置
fig.autofmt_xdate()#自适应日期
plt.show()

展示

坐标轴的刻度

坐标轴刻度间隔

import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
#从pyplot导入MultipleLocator类,这个类用于设置刻度间隔
 
x_values=list(range(11))
y_values=[x**2 for x in x_values]
plt.plot(x_values,y_values,c='green')
plt.title('Squares',fontsize=24)
plt.tick_params(axis='both',which='major',labelsize=14)
plt.xlabel('Numbers',fontsize=14)
plt.ylabel('Squares',fontsize=14)
x_major_locator=MultipleLocator(1)
#把x轴的刻度间隔设置为1,并存在变量里
y_major_locator=MultipleLocator(10)
#把y轴的刻度间隔设置为10,并存在变量里
ax=plt.gca()
#ax为两条坐标轴的实例
ax.xaxis.set_major_locator(x_major_locator)
#把x轴的主刻度设置为1的倍数
ax.yaxis.set_major_locator(y_major_locator)
#把y轴的主刻度设置为10的倍数
plt.xlim(-0.5,11)
#把x轴的刻度范围设置为-0.5到11,因为0.5不满一个刻度间隔,所以数字不会显示出来,但是能看到一点空白
plt.ylim(-5,110)
#把y轴的刻度范围设置为-5到110,同理,-5不会标出来,但是能看到一点空白
plt.show()

展示

图片替换文本

添加坐标轴

#可以画出双坐标轴
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(2,20,1)

y1 = x * x
y2 = np.log(x)
#plot方式
#plt.plot(x,y1)
#plt.twinx()#添加坐标轴
#plt.plot(x,y2,'r')
#plt.show()

#面向对象方式
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x,y1)
ax1.set_ylabel('Y1')
ax2 = ax1.twinx()#当然也可twiny
ax2.plot(x,y2,'r')
ax2.set_xlabel('Compare Y1 and Y2')
plt.show()

展示

添加坐标轴

注释

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-10,11,1)
y = x*x
plt.plot(x,y)
plt.annotate("this is the bottom",
             xy=(0,5),#箭头坐标
             xytext=(0,20),#这行字的起始坐标  注:arrowprops(新版本不在支持)
             arrowprops=dict(facecolor='r',frac=1,headwidth=10)#frac是箭头占比
             )
plt.show()

展示

注释

文字

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-10,11,1)
y = x * x
plt.plot(x,y)
plt.text(-2,40,'function:y=x*x',family='serit',size=20,color='r',style='italic',weight=0)
plt.text(-2,20,'function:y=x*x',family='fantasy',size=20,color='g',style='oblique',weight=1000,bbox=dict(facecolor='r',alpha=0.2))
plt.show()

展示

文字

后记

终于整理完了,以后的路还长呢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值