Python之matplotlib画图

一、线形图

代码:

结果:

代码:

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

图像:

猜你喜欢

转载自blog.csdn.net/weixin_40849273/article/details/82871002