Matplotlib的使用

2018-05-05  本文已影响748人  _羊羽_

安装

安装numpy

pip3 install numpy

安装matplotlib

pip3 install matplotlib

基础

import numpy as np
import matplotlib.pyplot as plt

x1 = np.linspace(-3, 3)
y1 = 2*x1-2
y2 = -2*x1-2
plt.plot(x1, y1)
plt.plot(x1, y2)
plt.show()
image.png

设置坐标轴

plt.xlim设置x坐标轴范围
plt.ylim设置y坐标轴范围
plt.xlabel设置x坐标轴名称
plt.ylabel设置y坐标轴名称
plt.xticks设置x轴刻度
plt.yticks设置y轴刻度

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3,)
y1 = 2 *x+1
y2 = x**2

plt.figure()
plt.plot(x,y2)
plt.plot(x,y1,color='red', linewidth=1.0, linestyle='--')
plt.xlim(-1,2)
plt.ylim(-2,3)
plt.xlabel('x')
plt.ylabel('y')

new_ticks = np.linspace(-1,2,5)
print(new_ticks)
plt.xticks(new_ticks)
plt.yticks([-2,-1.8,-1,1.22,3])
plt.show()
image.png

设置边框

plt.gca获取当前坐标轴信息. 使用.spines设置边框,使用.set_color设置边框颜色:默认白色.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3)
y1 = 2 *x+1
plt.plot(x,y1)
plt.xlim(-1,2)
plt.ylim(-2,3)
ax = plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
plt.show()
image.png

调整坐标轴位置

使用.xaxis.set_ticks_position设置x坐标刻度数字或名称的位置(所有位置:top,bottom,both,default,none)。使用.set_position设置边框位置:y=0的位置;(位置所有属性:outward,axes,data)

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3)
y1 = x**2
plt.plot(x,y1)
plt.xlim(-3,3)
plt.ylim(-1,3)
ax = plt.gca()
ax.xaxis.set_ticks_position('bottom')
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
plt.show()
image.png

图例

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3)
y1 = x**2
l1, = plt.plot(x,y1,label='square line')
y2 = 2*x + 1
l2, = plt.plot(x,y2,color='red', linewidth=1.0, linestyle='--', label='linear line')
plt.xlim(-3,3)
plt.ylim(-1,3)
#plt.legend(loc='lower right')
plt.legend(handles=[l1, l2], labels=['x^2', '2*x+1'],  loc='best')
ax = plt.gca()
ax.xaxis.set_ticks_position('bottom')
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['left'].set_position(('data', 0))
ax.spines['bottom'].set_position(('data', 0))
plt.show()

l1, l2,要以逗号结尾, 因为plt.plot() 返回的是一个列表.
位置信息

               ===============   =============
                Location String   Location Code
                ===============   =============
                '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
                ===============   =============
image.png
上一篇下一篇

猜你喜欢

热点阅读