📅  最后修改于: 2023-12-03 15:35:49.443000             🧑  作者: Mango
在 matplotlib
中,yticks
用于设置图表中的 Y 轴刻度、标签和格式。通过 yticks
,我们可以让 Y 轴的刻度和标签更加直观地反映数据的分布情况。
下面是 yticks
的基本用法:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.yticks(np.arange(-1, 1.1, 0.2))
plt.show()
在上面的例子中,yticks
接受一个参数,即要设置的刻度值。np.arange(-1, 1.1, 0.2)
表示从 -1 到 1(不包括 1)的步长为 0.2 的一组数,这些数将会作为 Y 轴的刻度值。然后我们调用 plt.plot(x, y)
绘制曲线,并通过 plt.yticks()
设置 Y 轴的刻度值。
如果想要给 Y 轴的刻度加上标签,可以使用 yticks
的第二个参数:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.yticks(np.arange(-1, 1.1, 0.2), ['min', '-0.8', '-0.6', '-0.4', '-0.2', '0', '0.2', '0.4', '0.6', '0.8', 'max'])
plt.show()
上面的例子中,plt.yticks()
的第二个参数是一个与刻度对应的字符串列表,这些字符串将会作为 Y 轴刻度的标签显示出来。
我们还可以使用 yticks
的第三个参数设置标签的格式。通常情况下,我们会想要设置标签的格式为带有单位的数值,比如 1000 变为 1k,1000000 变为 1M。这时可以使用 matplotlib.ticker
模块中的 FuncFormatter
类。
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
def format_func(value, tick_number):
if value >= 1e6:
value = round(value / 1e6, 1)
return '{}M'.format(value)
elif value >= 1e3:
value = round(value / 1e3, 1)
return '{}k'.format(value)
else:
return int(value)
ax.yaxis.set_major_formatter(ticker.FuncFormatter(format_func))
plt.show()
在上面的例子中,FuncFormatter
的参数是一个函数,接受两个参数:要格式化的数值和要格式化的刻度数量。在函数内部,我们可以根据数值的大小返回不同的字符串。在这个例子中,如果数值大于或等于 $10^6$,就将它除以 $10^6$,保留一位小数,并添加一个 'M',这样就可以将 1000000 格式化为 1M;如果数值大于或等于 $10^3$,就将它除以 $10^3$,保留一位小数,并添加一个 'k',这样就可以将 1000 格式化为 1k;其他情况直接返回整数形式的数值。
通过 yticks
,我们可以更加直观地反映数据的分布情况,通过设置刻度、标签和格式,我们能够让图表更加易于理解。以上是 yticks
的一些基本用法,读者可以根据实际需求进行更加复杂的设置。