Python Matplotlib:轴刻度数字格式-工程符号
背景 可以按照建议将轴刻度转换为科学格式 数字可以转换为工程格式,一次一个,如图所示 问题:Python Matplotlib:轴刻度数字格式-工程符号,python,matplotlib,formatting,Python,Matplotlib,Formatting,背景 可以按照建议将轴刻度转换为科学格式 数字可以转换为工程格式,一次一个,如图所示 问题: 如何在工程符号中设置轴记号的格式,即数量级是3的倍数。您可能想确切解释工程符号的含义,但有一个,它自动使用国际单位制前缀,即micro、mili、kilo、mega等 fig, ax = plt.subplots() ax.set_ylim(0,1e6) ticker = matplotlib.ticker.EngFormatter(unit='') ax.yaxis.set_major_formatt
如何在工程符号中设置轴记号的格式,即数量级是3的倍数。您可能想确切解释工程符号的含义,但有一个,它自动使用国际单位制前缀,即micro、mili、kilo、mega等
fig, ax = plt.subplots()
ax.set_ylim(0,1e6)
ticker = matplotlib.ticker.EngFormatter(unit='')
ax.yaxis.set_major_formatter(ticker)
您可能想确切地解释工程符号的含义,但有一个自动使用国际单位制前缀的符号,即micro、mili、kilo、mega等
fig, ax = plt.subplots()
ax.set_ylim(0,1e6)
ticker = matplotlib.ticker.EngFormatter(unit='')
ax.yaxis.set_major_formatter(ticker)
在使用该模块时,我想到了以下解决方案:
从十进制输入十进制
将matplotlib.pyplot作为plt导入
将numpy作为np导入
data1=np.linspace-9,9,19
数据2=2.3*10**数据1
yticks=10**np.linspace-9,9,19
yticklabels=[Decimaly.quantizeDecimal'0.000000000 1'。将Ytick中y的.to_eng_字符串规范化]
plt.图1
plt.subplot121
plt.gridTrue
plt.xlabel'k'
plt.ylabel'10^k'
plt.plotdata1,data2,k.'
plt.yscale'log'
plt.xticksdata1
plt.yticksyticks
plt.subplot 122
plt.gridTrue
plt.xlabel'k'
plt.ylabel'10^k'
plt.plotdata1,data2,k.'
plt.yscale'log'
plt.xticksdata1
plt.yticksyticks,yticksyticks标签
节目
请参阅:0到-6之间的指数未按定义/标准转换为所需格式。此外,我还需要使用从十进制开始的量化方法,因为否则输出的数字将必须位于多个位置。去掉量化部分,你就会明白我的意思
希望有帮助 在使用模块时,我想到了以下解决方案:
从十进制输入十进制
将matplotlib.pyplot作为plt导入
将numpy作为np导入
data1=np.linspace-9,9,19
数据2=2.3*10**数据1
yticks=10**np.linspace-9,9,19
yticklabels=[Decimaly.quantizeDecimal'0.000000000 1'。将Ytick中y的.to_eng_字符串规范化]
plt.图1
plt.subplot121
plt.gridTrue
plt.xlabel'k'
plt.ylabel'10^k'
plt.plotdata1,data2,k.'
plt.yscale'log'
plt.xticksdata1
plt.yticksyticks
plt.subplot 122
plt.gridTrue
plt.xlabel'k'
plt.ylabel'10^k'
plt.plotdata1,data2,k.'
plt.yscale'log'
plt.xticksdata1
plt.yticksyticks,yticksyticks标签
节目
请参阅:0到-6之间的指数未按定义/标准转换为所需格式。此外,我还需要使用从十进制开始的量化方法,因为否则输出的数字将必须位于多个位置。去掉量化部分,你就会明白我的意思
希望有帮助 也许ScalarFormatter代替EngFormatter可以完成这项工作。也许ScalarFormatter代替EngFormatter可以完成这项工作。我正在寻找一种解决方案,它将以数量级显示轴刻度,例如10**-3,10**+3,而不是m,k符号。谢谢。我正在寻找一种解决方案,它将以数量级显示轴刻度,例如10**-3,10**+3,而不是m,k符号。谢谢。您需要编写自己的格式化程序,它是ScalarFormatter和EngFormatter的混合体。或者,您可以将其打包到自定义函数中并使用FuncFormatter。您需要编写自己的格式化程序,将ScalarFormatter和EngFormatter混合使用。或者,您可以将其打包到自定义函数中并使用FuncFormatter。