python matlibplot_荐python【Matlibplot绘图库】基本使用(真の能看懂~!)

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

b6b64a6ef0df9d2851367b2c84aaf93b.png

使用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()

a5f5343c722bb3f24c2407ec3cfe1983.png

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

a3fa1cbcecbca1ee5d7797e08cd85e61.png

使用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()

16367d4d190846fa980346272d8a5bf3.png

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’reallybadreallybadreally\ badreallybad’, r’badbadbadbad’, r’normalnormalnormalnormal’, r’goodgoodgoodgood’, r’reallygoodreallygoodreally\ goodreallygood’])

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

47bcecc29c9e82ecc7a98b28e1145ede.png

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

553456a33da13aeaa63999a0ca2e7e22.png

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

a9ed2f1e9ef19ecdafa4d6816af05b9f.png

然后标注出点(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’2x+1=2x+1=2x+1=%s2x+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’Thisisthesometext.μσiαtThisisthesometext.μσiαtThis\ is\ the\ some\ text. \mu\ \sigma_i\ \alpha_tThisisthesometext.μσi​αt​’,

fontdict={‘size’: 16, ‘color’: ‘r’})

其中-3.7, 3,是选取text的位置, 空格需要用到转字符\ ,fontdict设置文本字体.

7 tick能见度

15f96b7f8e7f5b449cf9665922b17c15.png

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

5b2b521dfdfcea312960b67095f700a9.png

原文链接:https://blog.csdn.net/weixin_43838785/article/details/105846383

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值