簡體   English   中英

在軸 matplotlib 上將負值設置為正值以獲得百分比

[英]Setting negative values as positive values on axis matplotlib for percentages

我需要為男性和女性繪制一個圖表,其中值以百分比表示。 我看到了以下問題。 將負 y 軸轉換為正 (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))

我注意到 yticklabels 看起來像

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%')

有沒有辦法擺脫 - 符號?

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM