0

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 版。

4

1 回答 1

0

使用标准刻度标签时,减号会自动转换为 Unicode 减号。更改刻度标签时,数字将转换为字符串。这样的字符串不会自动替换为 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()

比较图

于 2020-11-07T09:34:34.197 回答