matplotlib 减号刻度标签格式错误
matplotlib minus sign in tick labels has bad formatting
如果自动设置,Matplotlib 似乎将“正确”的 unicode 字符用于刻度标签中的减号。但是,如果我尝试手动设置它们,它似乎会使用连字符(看起来太小而且通常不好)。如何在保留正确的减号的同时手动更改刻度标签?下面是标签的自动设置和手动设置之间的比较示例。
自动:
import matplotlib.pyplot as plt
plt.plot(np.arange(-50,51,10), np.arange(0, 101, 10))
plt.xticks(np.arange(-50,51,10))
手动:
import matplotlib.pyplot as plt
plt.plot(np.arange(-50,51,10), np.arange(0, 101, 10))
plt.xticks(np.arange(-50,51,10), np.arange(-50,51,10))
这是输出的比较
[1]: https://i.stack.imgur.com/euLmy.png
我关心这个的真正原因是因为我想将标签设置为与默认值不同的值。我是 运行 matplotlib 版本 3.2.2.
使用标准刻度标签时,the minus signs are converted automatically to unicode minus signs。
更改刻度标签时,数字将转换为字符串。这样的字符串不会自动替换为 unicode 减号。一个解决方案是明确地做到这一点:
import matplotlib.pyplot as plt
import numpy as np
plt.plot(np.arange(-50, 51, 10), np.arange(11))
plt.xticks(np.arange(-50, 51, 10), [f'{x}'.replace('-', '\N{MINUS SIGN}') for x in np.arange(-50, 51, 10)])
plt.show()
如果自动设置,Matplotlib 似乎将“正确”的 unicode 字符用于刻度标签中的减号。但是,如果我尝试手动设置它们,它似乎会使用连字符(看起来太小而且通常不好)。如何在保留正确的减号的同时手动更改刻度标签?下面是标签的自动设置和手动设置之间的比较示例。 自动:
import matplotlib.pyplot as plt
plt.plot(np.arange(-50,51,10), np.arange(0, 101, 10))
plt.xticks(np.arange(-50,51,10))
手动:
import matplotlib.pyplot as plt
plt.plot(np.arange(-50,51,10), np.arange(0, 101, 10))
plt.xticks(np.arange(-50,51,10), np.arange(-50,51,10))
这是输出的比较 [1]: https://i.stack.imgur.com/euLmy.png
我关心这个的真正原因是因为我想将标签设置为与默认值不同的值。我是 运行 matplotlib 版本 3.2.2.
使用标准刻度标签时,the minus signs are converted automatically to unicode minus signs。 更改刻度标签时,数字将转换为字符串。这样的字符串不会自动替换为 unicode 减号。一个解决方案是明确地做到这一点:
import matplotlib.pyplot as plt
import numpy as np
plt.plot(np.arange(-50, 51, 10), np.arange(11))
plt.xticks(np.arange(-50, 51, 10), [f'{x}'.replace('-', '\N{MINUS SIGN}') for x in np.arange(-50, 51, 10)])
plt.show()