使用python代替MATLAB进行绘图(一)

使用python进行绘图(一)

前言

这段时间,我一直在学习,如何使用python对于matlab的科学计算方面进行一个替代,作为计算机系学生,如果能用熟悉的语言在数学建模比赛中写代码,至少对于我来说,是一件很享受的事情。


今天学习的是关于python中使用matplotlib进行一个绘图

简单版:
#!  conda env
# -*- coding:utf-8 -*-
# Time:2020/4/8 2:21 下午
# Author : nishizzma
# File : simply_sin_cos.py

import numpy as np
import matplotlib.pyplot as plt

#x为numpy数组,获得了一个从-pi到pi,间隔256个值
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
c,s = np.cos(x),np.sin(x)

plt.plot(x,c)
plt.plot(x,s)
plt.show()
坐标轴设置:
#!  conda env
# -*- coding:utf-8 -*-
# Time:2020/4/8 2:57 下午
# Author : nishizzma
# File : spines_use.py

import matplotlib.pyplot as plt
import numpy as np

ax = plt.gca()
"""
每一个坐标轴都有四条边,我们可以考虑将两条边设置为无色,然后将剩下两条边调整至
合适的位置
"""
ax.spines['right'].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))

x = np.linspace(-np.pi,np.pi,256,endpoint=True)
c,s = np.cos(x),np.sin(x)

#label这里一定要设置,与下面的legend一一对应
plt.plot(x,c,color="blue",linewidth=1.0,linestyle="-",label="cox(x)")
plt.plot(x,s,color="green",linewidth=1.0,linestyle="-",label="sin(x)")

#设置标题的大小
for label in ax.get_xticklabels() + ax.get_yticklabels():
    label.set_fontsize(10)
    label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.65 ))

#设置图例
plt.legend(loc='upper left')

plt.show()
绘图基本操作:
#!  conda env
# -*- coding:utf-8 -*-
# Time:2020/4/8 2:33 下午
# Author : nishizzma
# File : pictureSetting.py


import matplotlib.pyplot as plt
import numpy as np

#设置8*6点的图
plt.figure(figsize=(8,6),dpi=80)

#创建一个新的1*1的子图,接下来图会显示在第一块
plt.subplot(1,1,1)

#设置x与sin(x),cos(x)
x = np.linspace(-np.pi,np.pi,256,endpoint=True)
c,s = np.cos(x),np.sin(x)

#plot绘图
plt.plot(x,c,color="blue",linewidth=1.0,linestyle="-")
plt.plot(x,s,color="green",linewidth=1.0,linestyle="-")

#设置x轴上限
plt.xlim(-4.0,4.0)
#设置y轴上下限
plt.ylim(-1.0,1.0)

#设置x,y轴标注,这里可以指定特定位置的对应
plt.xticks(np.linspace(-4,4,9,endpoint=True))
plt.yticks(np.linspace(-1,1,5,endpoint=True))

plt.show()

"""
上面对于边界的设置,可以采取更加合适的计算
xmin,xmax=X.min(),X.max()
ymin,ymax=Y.min(),Y.max()

dx = (xmax - xmin) * 0.2
dy = (ymax - ymin) * 0.2

plt.xlim(xmin - dx,xmax + dx)
plt.ylim(ymin - dx,ymax + dx)
"""
二维图形填充:
#!  conda env
# -*- coding:utf-8 -*-
# Time:2020/4/8 3:39 下午
# Author : nishizzma
# File : two_dPicture.py

import matplotlib.pyplot as plt
import numpy as np

n = 256
X = np.linspace(-np.pi,np.pi,n,endpoint=True)
Y = np.sin(2*X)

# plt.axes([0.025,0.025,0.95,0.95])

plt.plot (X, Y+1, color='blue', alpha=1.00)
plt.fill_between(X, 1, Y+1, color='blue', alpha=.25)

plt.plot (X, Y-1, color='blue', alpha=1.00)
plt.fill_between(X, -1, Y-1, (Y-1) > -1, color='blue', alpha=.25)
plt.fill_between(X, -1, Y-1, (Y-1) < -1, color='red',  alpha=.25)

plt.xlim(-np.pi,np.pi), plt.xticks([])
plt.ylim(-2.5,2.5), plt.yticks([])
plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值