• Matplotlib的一些常规操作


    画图时用的ax其实是Axes对象,表示我们要在figure画布上新建一个图框,之后就在这个图框上画,所以如果要在一个画布上画多个图时就必须要用ax了。

    以下表示第1行第1列 第1个子图
    ax = plt.subplot(111)

    设置标题: plt.title('Daily Data volumn')
    设置轴名: plt.xlabel('Day',fontsize = 5)
    设置轴位置: ax.yaxis.set_ticks_position('left')
    旋转坐标值: plt.xticks(rotation=90)
    更改坐标轴的值: plt.xticks([500, 800, 1000, 1500])
    设置坐标轴显隐: ax.spines['right'].set_color('none')表示将右边的轴设置为透明
    不显示外图框: plt.axis('off')
    ax.axis('off')
    移动坐标轴: ax.spines['left'].set_position(('data', -1))
    'data’表示参照物,-1表示相对于参照物要移动到的位置,即相对于data开始的位置再往左移动,0表示和data开始的位置重合。所以该参数可以控制画的图与坐标轴的距离
    更改坐标值依附的坐标轴: ax.yaxis.set_ticks_position('right')
    这样可以使y轴坐标值显示在右边的坐标轴上

    更改 颜色color 和 标记marker : 参考这个文章【python】Matplotlib作图常用marker类型、线型和颜色_巫_月的博客-CSDN博客_python画图marker

    添加网格线: plt.grid(b=True, color, ls, linewidth, axis)

    以上参数可能顺序不对
     - ls: 可以写成linestyle, 实线、虚线之类的, 可选:"-", "--", "-.", ":", "|"
     - ld: 可以写成linewidth,线宽,例如1.5
     - axis: 只显示哪个方向的, 可选:“both", "x", "y"
     - c: 可以写成color,颜色透明度什么的,写成"0" - "1"之间的小数(带引号的小数)表示从不透明到完全透明,如"0.7"
    
    • 1
    • 2
    • 3
    • 4
    • 5

    1.展示高清矢量图

    可以在导入plt 后 使用魔法命令:
    %config InlineBackend.figure_format = 'svg'
    如果想要切换回去的话:
    config InlineBackend.figure_format = 'png'
    听说如下这个是用来提高图片显示分辨率的,但我用着和png没什么区别:
    %config InlineBackend.figure_format = ‘retina’

    2.显示四个坐标轴

    ax.tick_params(labeltop=True,  		# 显示刻度值
    			   top=True, 		
    			   labelright=True, 
    			   right=True,
    			   labelbottom=True,
    			    width=4,colors='red')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    效果如下:
    在这里插入图片描述

    3.matplotlib显示汉字和新罗马字体

    参考这个文章
    在MATPLOTLIB中加入汉字显示_卓晴的博客-CSDN博客_matplotlib 汉字

    plt.rcParams['font.sans-serif'] = ['Times New Roman']  
    plt.rcParams['axes.unicode_minus'] = False  # 显示负号
    以上是设置全局字体,也可以设置回"Arial",如果要汉字也可以设置为“SimSun”-宋体、“SimHei”-黑体、“Microsoft YaHei”-微软雅黑
    
    不过这种感觉更好用一点,毕竟可以设置字体大小、粗细
    font = {'family':'Times New Roman', 'weight':'bold','size':'12'}
    plt.rc('font', **font)
    在wight粗细这个地方,我们可以有这几个选项:
    注:normal、bold、bolder、lighter,它表示100900(100的整数倍)。
    数字400等价于normal,而700等价于bold,所以用数字去表示更准确,比如"wight":"520"
    
    如果已经设置了全局字体,可以在局部切换成自己需要的,如:
    plt.xlabel("数据规模", fontproperties="SimSun")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    4.显示图例

    plt.legend(loc="upper left")
    
    • 1

    下回补上它的参数说明

    5. 改变字体大小

    plt.xticks(..., fontsize=20) # 刻度字体大小
    ax.xlabel(..., fontsize=20) # 坐标轴名称大小
    ax.legend(..., fontsize=20) # 图例字体大小
    plt.title(..., fontsize=20) # 图名字体大小
    
    • 1
    • 2
    • 3
    • 4

    持续更新…

  • 相关阅读:
    java面试题+答案
    HSV空间改进的多尺度Retinex算法
    Compose UI 之 Buttons 按钮 & IconButtons 图标按钮
    【数据结构】优先级队列 - 堆
    UNIX环境高级编程-第六章-系统数据文件和信息
    Pytorch的variable和tensor区别
    Tomcat配置文件
    人性与理性共赢,真心罐头跃过增长的山海关
    PHP低版本安全问题
    GeneratePress:全局颜色设置教程
  • 原文地址:https://blog.csdn.net/weixin_42642296/article/details/126152895