Matplotlib绘图添加标题,图例,网格,参考线,注释文本,数学表达式,标签,修改刻度


Matplotlib绘图添加标题,图例,网格,参考线,注释文本,数学表达式,标签,修改刻度

matplotlib绘制直方图,饼图,散点图,气泡图,箱型图,雷达图 http://t.csdn.cn/ZeXim

matplotlib的参数配置:http://t.csdn.cn/TiI79

一.设置x轴和y轴的标签

xlabel(xlabel,fontdict=None,labelpad=None)
ylabel(ylabel,fontdict=None,labelpad=None)

示例代码:

# 标签
import numpy as np
import matplotlib.pyplot as plt
# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
x=np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2=np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
# 设置标签
plt.xlabel("this is x 轴",size=20)
plt.ylabel("this is y 轴",size=20)
plt.show()

image-20221001205035213

二.设置刻度范围

使用xlim,ylim函数来设置x轴和y轴的范围

xlim(left=None,right=None,emit=True,auto=False,xmin=None,xmax=None)
ylim(left=None,right=None,emit=True,auto=False,ymin=None,ymax=None)
# 标签
import numpy as np
import matplotlib.pyplot as plt
# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
x=np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2=np.sin(x),np.cos(x)
plt.plot(x,y1,x,y2)
# 设置标签
plt.xlabel("this is x 轴",size=20)
plt.ylabel("this is y 轴",size=20)
# 刻度标签
plt.xlim(-4,4)
plt.ylim(-1,1)
plt.show()

image-20221001205614877

三.添加标题和图例

标题

title(label,fontdict=None,loc="center",pad=None)

主要是这里这个loc

图例

legend(handles,labels,loc)
# 标签
import numpy as np
import matplotlib.pyplot as plt
# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
x=np.linspace(-np.pi,np.pi,256,endpoint=True)
y1,y2=np.sin(x),np.cos(x)
pic=plt.plot(x,y1,x,y2)
# 设置标签
plt.xlabel("this is x 轴",size=20)
plt.ylabel("this is y 轴",size=20)
# 刻度标签
plt.xlim(-4,4)
plt.ylim(-1,1)
# 添加标题
plt.title("正弦曲线和余弦曲线",loc="left")
# 添加图例
plt.legend(pic,["sinx","cosx"],shadow=True,fancybox="blue")
plt.show()

image-20221001210854598

四.显示网格

这个简单,plt.grid()就好了,但是里面还有一些参数

grid(b=True,axis="both",which='major')
# 标签
import numpy as np
import matplotlib.pyplot as plt

# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
pic = plt.plot(x, y1, x, y2)
# 设置标签
plt.xlabel("this is x 轴", size=20)
plt.ylabel("this is y 轴", size=20)
# 添加标题
plt.title("正弦曲线和余弦曲线", loc="left")
# 添加图例
plt.legend(pic, ["sinx", "cosx"], shadow=True, fancybox="blue")
# 网格
plt.grid()
plt.show()

image-20221001211112120

选择添加y轴的网格,修改lw为0.3

plt.grid(lw=1, axis="y")

image-20221001211644221

五.添加水平参考线和参考区域

1.使用axhline添加水平参考线

axhline(y=0,xmin=0,xmax-1,linestyle="-")

image-20221001212112835

2.使用axvline绘制垂直参考线

axvline与axhline的语法类似,只需要修改x和y即可

示例:在上图中添加两条参考线:

# 标签
import numpy as np
import matplotlib.pyplot as plt

# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
pic = plt.plot(x, y1, x, y2)
# 设置标签
plt.xlabel("this is x 轴", size=20)
plt.ylabel("this is y 轴", size=20)
# 添加标题
plt.title("正弦曲线和余弦曲线", loc="left")
# 添加图例
plt.legend(pic, ["sinx", "cosx"], shadow=True, fancybox="blue")
# 网格
plt.grid(lw=1, axis="y")
# 参考线
plt.axvline(x=0.5, linestyle=":", color="m")
plt.axhline(y=0.5, linestyle="--", color="y")
plt.show()

image-20221001212546052

3.使用axhspan和axvspan添加参考区域

axhspan(ymin,ymax,xmin,xmax)
axvspan(ymin,ymax,xmin,xmax)
# 标签
import numpy as np
import matplotlib.pyplot as plt

# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
pic = plt.plot(x, y1, x, y2)
# 设置标签
plt.xlabel("this is x 轴", size=20)
plt.ylabel("this is y 轴", size=20)
# 添加标题
plt.title("正弦曲线和余弦曲线")
# 添加图例
plt.legend(pic, ["sinx", "cosx"], shadow=True, fancybox="blue")
# 网格
plt.grid(lw=1, axis="y")
# 参考线
plt.axvline(x=0.5, linestyle=":", color="m")
plt.axhline(y=0.5, linestyle="--", color="y")
# 参考区域
plt.axvspan(xmin=0.5, xmax=1, alpha=0.32)
plt.axhspan(ymin=0.2, ymax=0.5, alpha=0.32)

plt.show()

image-20221001213116289

六:添加注释文本

一.指向性文本

anootate(s,xy,xytext,xycoords,arrowprops,bbox)

arrowprops参数如下:

image-20221001214629604

二.无指向性文本注释文本

text(x,y,s,fontdict=None,bbox)

例如:

# 标签
import numpy as np
import matplotlib.pyplot as plt

# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
pic = plt.plot(x, y1, x, y2)
# 设置标签
plt.xlabel("x 轴", size=20)
plt.ylabel("y 轴", size=20)
# 添加标题
plt.title("正弦曲线和余弦曲线")
# 添加图例
plt.legend(pic, ["sinx", "cosx"], shadow=True, fancybox="blue")
# 网格
plt.grid()
plt.annotate("最小值", xy=(-np.pi / 2, -1.0), xytext=((-np.pi / 2), -0.5), arrowprops=dict(arrowstyle="->"))
plt.text(3.1, 0.1, "y=sin(x)", bbox=dict(alpha=0.2))
plt.show()

image-20221001215003576

七.添加数学公式

只要使用latetx或者katex语法即可

比如r"$\sin x$"就会显示为Matplotlib绘图添加标题,图例,网格,参考线,注释文本,数学表达式,标签,修改刻度

这里修改下标题

    # 标签
    import numpy as np
    import matplotlib.pyplot as plt

    # 支持中文
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
    plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
    x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
    y1, y2 = np.sin(x), np.cos(x)
    pic = plt.plot(x, y1, x, y2)
    # 设置标签
    plt.xlabel(" x 轴", size=15)
    plt.ylabel(" y 轴", size=15)
    # 添加标题
    plt.title(r'$\frac{\sin x}{2}$')
    # 添加图例
    plt.legend(pic, ["sinx", "cosx"], shadow=True, fancybox="blue")
    # 网格
    plt.grid()
    plt.annotate("最小值", xy=(-np.pi / 2, -1.0), xytext=((-np.pi / 2), -0.5), arrowprops=dict(arrowstyle="->"))
    plt.text(3.1, 0.1, "y=sin(x)", bbox=dict(alpha=0.2))
    plt.show()

image-20221001220255295

参考链接:Matplotlib — Visualization with Python
参考书籍:Python数据可视化%20(黑马程序员)

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年3月10日
下一篇 2023年3月10日

相关推荐