Xiang Li-哈尔滨理工大学

文章目录

  • 1 基本用法
  • 2 figure图像
  • 3 设置坐标轴1
  • 4 设置坐标轴2
  • 5 Legend图例
  • 6 Annotation标注
  • 7 tick能见度

1 基本用法

import matplotlib.pyplot as plt
import numpy as np


x = np.linspace(-1, 1, 50)
y = 2*x + 1


plt.figure()
plt.plot(x, y)
plt.show()

Xiang Li-哈尔滨理工大学_第1张图片
使用import导入模块matplotlib.pyplot,并简写成plt 使用import导入模块numpy,并简写成np

import matplotlib.pyplot as plt
import numpy as np
使用np.linspace定义x:范围是(-1,1);个数是50. 仿真一维数据组(x ,y)表示曲线1.

x = np.linspace(-1, 1, 50)
y = 2*x + 1
使用plt.figure定义一个图像窗口. 使用plt.plot画(x ,y)曲线. 使用plt.show显示图像.

plt.figure()
plt.plot(x, y)
plt.show()

2 figure图像

import matplotlib.pyplot as plt
import numpy as np


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

plt.figure()
plt.plot(x, y1)

plt.figure()
plt.plot(x,y2)
plt.show()

Xiang Li-哈尔滨理工大学_第2张图片

import matplotlib.pyplot as plt
import numpy as np


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

plt.figure()
plt.plot(x, y1)

plt.figure(num=3,figsize=(8,5))
plt.plot(x,y2)
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')

plt.show()

Xiang Li-哈尔滨理工大学_第3张图片
使用plt.figure定义一个图像窗口:编号为3;大小为(8, 5). 使用plt.plot画(x ,y2)曲线. 使用plt.plot画(x ,y1)曲线,曲线的颜色属性(color)为红色;曲线的宽度(linewidth)为1.0;曲线的类型(linestyle)为虚线. 使用plt.show显示图像.

3 设置坐标轴1

import matplotlib.pyplot as plt
import numpy as np


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



plt.figure(num=3,figsize=(8,5))
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],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

plt.show()

Xiang Li-哈尔滨理工大学_第4张图片
plt.xlim((-1, 2))
plt.ylim((-2, 3))
plt.xlabel(‘I am x’)
plt.ylabel(‘I am y’)
plt.show()
设置坐标轴1

使用np.linspace定义范围以及个数:范围是(-1,2);个数是5. 使用print打印出新定义的范围. 使用plt.xticks设置x轴刻度:范围是(-1,2);个数是5.

new_ticks = np.linspace(-1, 2, 5)
print(new_ticks)
plt.xticks(new_ticks)

使用plt.yticks设置y轴刻度以及名称:刻度为[-2, -1.8, -1, 1.22, 3];对应刻度的名称为[‘really bad’,’bad’,’normal’,’good’, ‘really good’]. 使用plt.show显示图像.

plt.yticks([-2, -1.8, -1, 1.22, 3],[r’ r e a l l y   b a d really\ bad really bad’, r’ b a d bad bad’, r’ n o r m a l normal normal’, r’ g o o d good good’, r’ r e a l l y   g o o d really\ good really good’])
plt.show()

4 设置坐标轴2

import matplotlib.pyplot as plt
import numpy as np


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



plt.figure(num=3,figsize=(8,5))
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],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])


ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom')#指定x坐标为bottom
ax.yaxis.set_ticks_position('left')


ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data',0))
plt.show()

plt.show()

Xiang Li-哈尔滨理工大学_第5张图片

5 Legend图例

import matplotlib.pyplot as plt
import numpy as np


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



plt.figure(num=3,figsize=(8,5))


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],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

l1,=plt.plot(x,y2,label='up')
l2,=plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--',label='down')
plt.legend(handles=[l1,l2,],labels=['aaa','bbb'],loc='best')

plt.show()

Xiang Li-哈尔滨理工大学_第6张图片

6 Annotation标注

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 50)
y = 2*x + 1

plt.figure(num=1, figsize=(8, 5))
plt.plot(x, y)


ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))

x0 = 1
y0 = 2*x0 + 1
plt.plot([x0, x0], [0, y0], 'k--', linewidth=2.5)
# set dot styles
plt.scatter([x0, ], [y0, ], s=50, color='b')

plt.annotate(r'$2x+1=%s$' % y0, xy=(x0, y0), xycoords='data', xytext=(+30, -30),
             textcoords='offset points', fontsize=16,
             arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.2"))

plt.text(-3.7, 3, r'$This\ is\ the\ some\ text. \mu\ \sigma_i\ \alpha_t$',
         fontdict={
     'size': 16, 'color': 'r'})

plt.show()

Xiang Li-哈尔滨理工大学_第7张图片
然后标注出点(x0, y0)的位置信息. 用plt.plot([x0, x0,], [0, y0,], ‘k–’, linewidth=2.5) 画出一条垂直于x轴的虚线.

x0 = 1
y0 = 2*x0 + 1
plt.plot([x0, x0,], [0, y0,], ‘k–’, linewidth=2.5)
#set dot styles
plt.scatter([x0, ], [y0, ], s=50, color=‘b’)
Annotation 标注

添加注释 annotate
接下来我们就对(x0, y0)这个点进行标注.

plt.annotate(r’ 2 x + 1 = 2x+1=%s 2x+1=’ % y0, xy=(x0, y0), xycoords=‘data’, xytext=(+30, -30),
textcoords=‘offset points’, fontsize=16,
arrowprops=dict(arrowstyle=’->’, connectionstyle=“arc3,rad=.2”))
其中参数xycoords=‘data’ 是说基于数据的值来选位置, xytext=(+30, -30) 和 textcoords=‘offset points’ 对于标注位置的描述 和 xy 偏差值, arrowprops是对图中箭头类型的一些设置.

Annotation 标注

添加注释 text
plt.text(-3.7, 3, r’ T h i s   i s   t h e   s o m e   t e x t . μ   σ i   α t This\ is\ the\ some\ text. \mu\ \sigma_i\ \alpha_t This is the some text.μ σi αt’,
fontdict={‘size’: 16, ‘color’: ‘r’})
其中-3.7, 3,是选取text的位置, 空格需要用到转字符\ ,fontdict设置文本字体.

7 tick能见度

Xiang Li-哈尔滨理工大学_第8张图片

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-3, 3, 50)
y = 0.1*x

plt.figure()
#在 plt 2.0.2 或更高的版本中, 设置 zorder 给 plot 在 z 轴方向排序
plt.plot(x, y, linewidth=10)
plt.ylim(-2, 2)
ax = plt.gca()
ax.spines[‘right’].set_color(‘none’)
ax.spines[‘top’].set_color(‘none’)
ax.spines[‘top’].set_color(‘none’)
ax.xaxis.set_ticks_position(‘bottom’)
ax.spines[‘bottom’].set_position((‘data’, 0))
ax.yaxis.set_ticks_position(‘left’)
ax.spines[‘left’].set_position((‘data’, 0))

for label in ax.get_xticklabels() + ax.get_yticklabels():
label.set_fontsize(12)
# 在 plt 2.0.2 或更高的版本中, 设置 zorder 给 plot 在 z 轴方向排序
label.set_bbox(dict(facecolor=‘white’, edgecolor=‘None’, alpha=0.7))

plt.show()
Xiang Li-哈尔滨理工大学_第9张图片

你可能感兴趣的:(Python,Libraries,#,Matlibplot)