美文网首页
关于 matplotlib 画图几个问题的解决

关于 matplotlib 画图几个问题的解决

作者: Vector_Wan | 来源:发表于2019-08-17 14:59 被阅读0次

    有几个问题困扰我好久了今天终于解决了,一定要记录一下,
    第一个就是:

    画图的时候无法显示中文

    好久之前就发现画图无法显示中文,只显示一个方块,之前一直不知道怎么弄,上网一搜全是麻烦的配置文件,还要下载字体,今天忽然发现一个简单的方法,很不错:只要添加:

    # 支持中文
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
    plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
    

    这两句代码就可以,
    我们试一下:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(-4, 4, 0.1)
    y = np.sin(x)
    plt.plot(x, y)
    plt.title('sin()曲线图')
    plt.legend(('这是一个图例',), loc='best')
    plt.show()
    

    添加上这两个代码:

    import matplotlib.pyplot as plt
    import numpy as np
    
    
    # 支持中文
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
    plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
    
    x = np.arange(-4, 4, 0.1)
    y = np.sin(x)
    plt.plot(x, y)
    plt.title('sin()曲线图')
    plt.legend(('这是一个图例',), loc='best')
    plt.show()
    

    可以显示中文啦

    单图例只显示第一个字符

    之前画图的时候老是出现这种情况,只在单图例上出现,当时也没发现哪里出错了,没办法只好把图例去掉了,

    import matplotlib.pyplot as plt
    import numpy as np
    
    
    # 支持中文
    plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
    plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
    
    x = np.arange(-4, 4, 0.1)
    y = np.sin(x)
    plt.plot(x, y)
    plt.title('sin()曲线图')
    plt.legend(('这是一个图例'), loc='best')
    plt.show()
    

    后来发现只要将plt.legend(('这是一个图例'), loc='best') 修改为 plt.legend(('这是一个图例',), loc='best') 这是因为: (不相信的同学可以试一下)

    >>> type((1))
    int
    >>> type((1,))
    tuple
    

    我们在给 legend 方法传参的时候实际上需要传递一个元组,在单图例的时候如果不在后面加上一个逗号,解释器就认为不是元组,所以就会出问题。

    相关文章

      网友评论

          本文标题:关于 matplotlib 画图几个问题的解决

          本文链接:https://www.haomeiwen.com/subject/ootksctx.html