zoukankan      html  css  js  c++  java
  • python绘图库matplotlib:画线的标志marker的设置——类型/size/空心/边线颜色及大小/显示marker超出边界部分

    如题,最近有绘图的工作,要求就是使用python绘图库来画线并打上坐标点的标志,这时候就遇到了问题,这个线上的标志如果是实心的话就难以有区分度,但是设置为空心就需要考虑标志的边线粗细等问题,于是便有了本文。

    给出自己的绘图代码:

    import matplotlib.pyplot as plt
    
    
    plt.plot([0, 1, 2, 3, 4, 5], [0.1, 0.2, 0.3, 0.4, 0.5, 0.6],
             color='r', label="Hello World", lw=1.5, ls='-', clip_on=False,
             marker='d', markersize=10, markerfacecolor='none', markeredgecolor='r',markeredgewidth=1.5)
    
    
    plt.legend(loc="lower right",  framealpha=1.0, edgecolor="black")
    
    plt.xlabel('XXX')
    plt.ylabel('YYY')
    plt.xlim(0, 5)
    plt.ylim(0, 1)
    
    plt.xticks([0,1,2,3,4,5], [0,10,20,30,40,50])
    plt.grid()
    
    plt.show()

     

    ===================================================

    关键语句:

    plt.plot([0, 1, 2, 3, 4, 5], [0.1, 0.2, 0.3, 0.4, 0.5, 0.6],
             color='r', label="Hello World", lw=1.5, ls='-', clip_on=False,
             marker='d', markersize=10, markerfacecolor='none', markeredgecolor='r',markeredgewidth=1.5)

    本文重点说明的参数:

    clip_on=False          关闭标志marker被画布框覆盖,不设置该值的话与画布框碰撞的标志marker会被覆盖。

    marker='d' 设置标志marker的具体图形

    markersize=10 设置标志marker的大小

    markerfacecolor='none' 设置标志marker是否使用空心显示,不设置该值的话默认为实心marker标志

    markeredgecolor='r' 设置标志marker的边线颜色,marker的内心颜色随线走保持一直,marker的边框颜色可以在这里单独设置

    markeredgewidth=1.5 设置标志marker的边框(边线)的粗细

    另外再给出一个例子:

    import matplotlib.pyplot as plt
    
    
    plt.plot([0, 1, 2, 3, 4, 5], [0.1, 0.2, 0.3, 0.4, 0.5, 0.6],
             color='r', label="Hello World", lw=1.5, ls='-', clip_on=False,
             marker='d', markersize=10, 
             # markerfacecolor='none',
             markeredgecolor='black',markeredgewidth=1.5)
    
    
    plt.legend(loc="lower right",  framealpha=1.0, edgecolor="black")
    
    plt.xlabel('XXX')
    plt.ylabel('YYY')
    plt.xlim(0, 5)
    plt.ylim(0, 1)
    
    plt.xticks([0,1,2,3,4,5], [0,10,20,30,40,50])
    plt.grid()
    
    plt.show()

     

    可以看到上图中标志marker并没有被画布框所遮盖,标志marker的外边线为黑色black而内心与线的颜色一致为红色。

    ====================================================

    参考:

    https://www.bianchengquan.com/article/216001.html

    https://blog.csdn.net/caoxinjian423/article/details/111477429

    本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注者,如有侵权请与博主联系。
  • 相关阅读:
    jvm的几个概念误区
    JDK动态代理和CGLib动态代理的对比
    mybatis源码解析(连载)
    HashMap源码解析(基于JDK1.8)
    线程池ThreadPoolExecutor——Worker源码解析
    Java线程池原理分析
    装饰器模式在mybatis-cache包中的应用
    rocketMQ手动创建Topic
    JVM误区--动态对象年龄判定
    云上奈飞(三):隐藏在播放按钮下的奥秘(上)
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/15490101.html
Copyright © 2011-2022 走看看