如何用Python的matplotlib将散点图刻度标签格式化为百分比样式
Matplotlib 刻度标签转百分比格式实现方案
你只需要在现有代码基础上补充刻度格式化的配置即可,两种常用实现方式如下:
方案1:使用内置PercentFormatter(最简便)
专门用于百分比场景的格式化工具,无需自定义逻辑:
import matplotlib.pyplot as plt from matplotlib.ticker import PercentFormatter plt.scatter(data["Profit_Margin"], data["Actual_Sales_Ex_RTC"], c=data["general"].map(colours)) plt.title("Multipack Crisps") plt.xlabel("Profit Margin %") plt.ylabel("Sales ex VAT") # 新增:设置x轴主刻度为百分比格式,输入值范围为0-1时直接输出对应百分比 plt.gca().xaxis.set_major_formatter(PercentFormatter(xmax=1, decimals=0)) plt.show()
参数说明:
xmax=1:表示输入值的最大值对应100%,适配你当前0.35对应35%的需求decimals=0:保留0位小数,需要保留小数可调整对应数值
方案2:自定义FuncFormatter(更高灵活性)
如果有特殊格式要求,可自定义格式化逻辑:
import matplotlib.pyplot as plt from matplotlib.ticker import FuncFormatter # 自定义百分比转换函数 def format_percent(value, pos): return f"{int(value * 100)}%" plt.scatter(data["Profit_Margin"], data["Actual_Sales_Ex_RTC"], c=data["general"].map(colours)) plt.title("Multipack Crisps") plt.xlabel("Profit Margin %") plt.ylabel("Sales ex VAT") # 新增:绑定自定义格式化函数 plt.gca().xaxis.set_major_formatter(FuncFormatter(format_percent)) plt.show()
内容的提问来源于stack exchange,提问作者Luke Simpson
相关产品推荐
相关产品推荐

