一、线形图
代码:
结果:
代码:
结果(figsize为显示图片的长和宽,我拉小了):
代码:
结果:
代码:
import matplotlib.pyplot as plt
import numpy as np
# 从[-1,1]中等距去50个数作为x的取值
x = np.linspace(-1, 1, 50)
y1 = 2*x + 1
y2 = 2**x + 1
# num表示的是编号,figsize表示的是图表的长宽
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)) # x参数范围
plt.ylim((1, 3)) # y参数范围
# 将x轴分为四段
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
# 将y轴分为四段,并在每个点标注
plt.yticks([-2, -1.8, -1, 1.22, 3],
['really bad', 'bad', 'normal', 'good', 'readl good'])
# gca = 'get current axis'#对当前图片进行调整
ax = plt.gca()
# 将右边和上边的边框(脊)的颜色去掉
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 绑定x轴和y轴
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
# 定义原点位置
ax.spines['bottom'].set_position(('data', 1))
ax.spines['left'].set_position(('data', 0.2))
plt.show()
结果:
代码:
import matplotlib.pyplot as plt
import numpy as np
# 从[-1,1]中等距去50个数作为x的取值
x = np.linspace(-1, 1, 50)
y1 = 2*x + 1
y2 = 2**x + 1
# num表示的是编号,figsize表示的是图表的长宽
plt.figure(num = 3, figsize=(8, 5))
plt.plot(x, y2,label = 'y2')
# 设置线条的样式
plt.plot(x, y1,
color='red', # 线条的颜色
linewidth=1.0, # 线条的粗细
linestyle='--' ,# 线条的样式
label = 'y1'
)
# 设置取值参数范围
plt.xlim((-1, 2)) # x参数范围
plt.ylim((1, 3)) # y参数范围
# 将x轴分为四段
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
# 将y轴分为四段,并在每个点标注
plt.yticks([-2, -1.8, -1, 1.22, 3],
['really bad', 'bad', 'normal', 'good', 'readl good'])
#右上角标注曲线含义
l1, = plt.plot(x, y2,
label='aaa'
)
l2, = plt.plot(x, y1,
color='red', # 线条颜色
linewidth = 1.0, # 线条宽度
linestyle='-.', # 线条样式
label='bbb' #标签
)
# 右上角绘制标注曲线,并且注明标注
plt.legend(handles=[l1, l2],
labels = ['aaa', 'bbb'],
#loc = 'best'
)
plt.show()
结果:
代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,50)
y1 = 2*x + 1
y2 = 2**x + 1
plt.figure(figsize=(12,8))
plt.plot(x,y1)
plt.plot(x,y2,color = 'red',linestyle = '--')
#调整图片
ax = plt.gca()#打开调整函数
ax.spines['right'].set_color('none')#消除右边框
ax.spines['top'].set_color('none')#消除上边框
ax.xaxis.set_ticks_position('bottom')#绑定x轴
ax.yaxis.set_ticks_position('left')#绑定y轴
ax.spines['bottom'].set_position(('data',0))#设定原点x的坐标
ax.spines['left'].set_position(('data',0))#设定的原点y的坐标
#显示交叉点
x0 = 1
y0 = 2*x0 +1
plt.scatter(x0,y0,s = 80,color = 'b')#画点,s表点大小
plt.plot([x0,x0],[y0,0],'--',lw = 2.5)#对该点进行划线,lw表粗细,--表线的样子
#设置点的信息
plt.annotate('2x+1=%s'%y0,#表示需要显示的东西
xy=(x0, y0),#表示在该点标注
#xycoords='data',
xytext=(+30, -30),#协调离该点的距离标注
textcoords='offset points',#协调线段距离
fontsize=18, # 这里设置的是字体的大小
arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=.2')# 这里设置的是箭头和箭头的弧度
)
#在y轴显示东西
plt.text(0,3,'good line',fontdict={'size':16,'color':'r'})
plt.show()
结果:
代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,50)
y = 2*x - 1
plt.figure(figsize=(12,8))
plt.plot(x,y,color = 'r',linewidth = 10.0,alpha = 0.3)#线宽为10,线能见度为0.5
#打开调整图片函数
ax = plt.gca()
# 将右边和上边的边框(脊)的颜色去掉
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 绑定x轴和y轴
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
# 定义x轴和y轴的位置
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))
# 可以使用tick设置透明度
for label in ax.get_xticklabels() + ax.get_yticklabels():
label.set_fontsize(12)#设置坐标轴字体大小
label.set_bbox(dict(facecolor='red', edgecolor='blue', alpha=0.5))#把坐标轴的字体放在框框里,并设置能见度,
# 颜色facecolor为框框填充颜色,
#edgecolor为框框边框颜色
plt.show()
结果:
代码:
import matplotlib.pyplot as plt
import numpy as np
plt.style.use('seaborn-whitegrid')# 图中网格
x=np.linspace(0,10,100)
plt.plot(x,np.sin(x-0),color='b',linestyle='-',linewidth=1)
plt.plot(x,np.sin(x-1),color='g',linestyle='--',linewidth=2)
plt.plot(x,np.sin(x-2),color='r',linestyle='-.',linewidth=3)
plt.plot(x,np.sin(x-3),color='y',linestyle=':',linewidth=4)
plt.xlim(0,10)# 设置x轴范围
plt.ylim(-1.1,1.1)# 设置y轴范围
plt.title("A Sine-type Curve",color='g')# 图像名称,颜色,字体大小
plt.xlabel('x',fontsize=20,color='r')#同上
plt.ylabel('y',fontsize=20)# 同上
plt.show(
---------------------
本文来自 亡城 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/The_lastest/article/details/79828638?utm_source=copy
结果:
代码:
结果:
二、散点
图
代码:
结果:
代码:
结果:
代码:
结果:
代码:
结果:
代码(误差图):
结果:
代码:
结果:
三维图像:
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(12, 8))
ax = Axes3D(fig)
# 生成X,Y
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X,Y = np.meshgrid(X, Y)#从一个向量返回一个坐标矩阵
R = np.sqrt(X**2 + Y**2)
# height value
Z = np.sin(R)
# 绘图
# rstride(row)和cstride(column)表示的是行列的跨度
ax.plot_surface(X, Y, Z,
rstride=1, # 行的跨度
cstride=1, # 列的跨度
cmap=plt.get_cmap('rainbow') # 颜色映射样式设置
)
ax.set_zlim(-2, 2)#z轴范围
plt.show()
图像:
画子图:
https://blog.csdn.net/you_are_my_dream/article/details/53439518
#!/usr/bin/python
#coding: utf-8
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 100)
fig = plt.figure()
ax1 = fig.add_subplot(221)
ax1.plot(x, x)
ax2 = fig.add_subplot(222)
ax2.plot(x, -x)
ax3 = fig.add_subplot(223)
ax3.plot(x, x ** 2)
ax4 = fig.add_subplot(224)
ax4.plot(x, np.log(x))
plt.show()
结果: