4Manuals

  • PDF Cloud HOME

在轴matplotlib上将负值设置为正值以表示百分比 Download

    如何将文本边界框与pyplot.Rectangle对齐? 导入类问题 在Python数据框中选择列时出错 使用Rabbit的pika确认消息 如何在按住键的同时暂停VideoStream? Python OpenCV TypeError:无法处理此数据类型 使用buildozer不会下载sdl2_image SMTPSenderRefused,421,超出超时 Tensorflow多线程推理比单线程推理慢 关于python中变量的困惑。 python如何使用变量?

我需要绘制一个以百分比表示的男性和女性绘图。我已经看到了以下问题。 Convert negative y axis to positive (matplotlib)

,它提供了使负值变为正数的解决方案,这正是我所需要的。但是,它将在标准模式下显示它们。 0.01,而不是1%

我在以下命令中按顺序进行操作,但似乎无法正确执行。

    ax.set_ylim(-0.01, 0.01)
    ax.set_yticklabels([str(abs(x)) for x in ax.get_yticks()])
    ax.yaxis.set_major_formatter(mtick.PercentFormatter(1))

我注意到yticklabel看起来像

Text(-0.01, 0, '-1.00%')
Text(-0.0075, 0, '-0.75%')
Text(-0.005, 0, '-0.50%')
Text(-0.0025000000000000005, 0, '-0.25%')
Text(0.0, 0, '0.00%')
Text(0.0025000000000000005, 0, '0.25%')
Text(0.004999999999999999, 0, '0.50%')
Text(0.0075000000000000015, 0, '0.75%')
Text(0.01, 0, '1.00%')

有没有办法摆脱-号?

1 个答案:

答案 0 :(得分:1)

手动更改PercentFormatter的内容时,

yticklabels不相关,因此您必须做到最后。这是一个正弦曲线示例,标记为从100%到0%到100%:

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111)
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
ax.plot(x,y)
ax.set_yticklabels([f"{abs(100*x)}%" for x in ax.get_yticks()])
fig.show()



Similar searches
    烧瓶响应音频文件,在野生动物园中打开,没有持续时间 如何使用xampp 我需要无舍入的精确十进制值。((Mysql) SQL查询-JOIN和UNION 动态填充Chef Cookbook属性