晨阳715 2023-12-17 22:06 采纳率: 72.7%
浏览 189
已结题

python 折线图,坐标刻度上的负指数符号“-”显示不出来

python 折线图的Y轴坐标刻度上,负指数符号“-”显示不出来,提示:“Font 'default' does not have a glyph for '-' [U+2212], substituting with a dummy symbol.”,请问需要怎么处理。

img

按照“C知道”的提示,两种方法都试了,没有用,还是原样

img

  • 写回答

1条回答 默认 最新

  • 风神白桃 2023-12-17 23:25
    关注

    在Python中使用matplotlib绘制折线图时,Y轴坐标刻度上的负指数符号“-”显示不出来的问题,很可能是因为Python的matplotlib模块不支持显示中文的原因。此时,你可以尝试使用以下方法进行处理:

    1. 安装新字体:你可以尝试通过安装新字体的方式来解决这个问题。例如,你可以安装字体家族中的黑体字,然后在代码中指定使用这个黑体字作为默认字体,以使负指数符号“-”可以正常显示。

    2. 使用字体替换:如果你想使用Python自带的默认字体,你可以在matplotlib的代码中使用fontproperties参数,如: plt.figure(figsize=(10,6))

    plt.plot(x_data, y_data)

    plt.title('Title')

    plt.xlabel('X Axis')

    plt.ylabel('Y Axis')

    plt.font.family('Times') #指定字体

    plt.tick_params(axis='both', which='major', labelsize=8, bottom=False, top=False, labelbottom=False, labeltop=False, labelright=False, labelleft=True, colors='k') #字体样式

    plt.show()

    在这段代码中,plt.font.family('Times') 语句指定了字体为Times New Roman,你可以根据需要替换为其他字体。在使用字体替换时,你需要注意的是,Python自带的默认字体CourierNew不支持负指数符号“-”的显示,因此你可能需要使用其他支持显示负指数符号的字体。

    1. 修改Python的代码:如果以上方法都无法解决问题,你可以尝试修改Python的代码。例如,你可以在Python的matplotlib模块中增加一个参数来指定字体,如:

    import matplotlib.pyplot as plt

    plt.rcParams['font.sans-serif'] = ['SimHei']

    plt.rcParams['font.size'] = 20

    plt.rcParams['axes.unicode_minus'] = False # 设置负号为正号显示

    plt.plot(x_data, y_data)

    plt.title('Title')

    plt.xlabel('X Axis')

    plt.ylabel('Y Axis')

    plt.show()

    在这段代码中,plt.rcParams['axes.unicode_minus'] = False语句设置负号为正号显示,你可以根据需要进行修改。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月20日
  • 创建了问题 12月17日