如何在Matplotlib柱状图中显示X轴对应数据的数值
解决Matplotlib柱状图X轴显示精确数值的问题
要在柱状图的X轴附近显示特定数据点(比如数值248)的精确值,你可以通过以下方式修改代码:
核心实现步骤
- 自定义X轴刻度集合:保留原有间隔刻度的同时,将目标数值248加入刻度列表
- 确保刻度唯一性:合并后去重,避免重复刻度干扰显示
修改后的完整代码
import matplotlib.pyplot as plt import numpy as np # 模拟包含目标数值248的数据集(实际使用时替换为你的count_dict) count_dict = {i: np.random.randint(1, 20) for i in range(250)} pos = np.arange(len(count_dict.keys())) my_colors = 'rgbkymc' plt.figure(figsize=(80, 30)) # width:80, height:30 plt.bar(range(len(count_dict)), count_dict.values(), align='edge', width=0.5, color=my_colors) plt.title("MinMaxScalerGaussianNB", fontsize=60) # 设置坐标轴标签 plt.xlabel("Number of Iterations", fontsize=45) plt.ylabel("Number of appearances in each iteration", fontsize=45) # 生成自定义X轴刻度:原有间隔刻度 + 目标数值248 original_ticks = np.arange(0, len(count_dict)+1, 50) custom_ticks = np.unique(np.concatenate([original_ticks, [248]])) plt.xticks(custom_ticks, fontsize=34) plt.yticks(fontsize=34) plt.xlim(xmin=0) plt.show()
可选优化:突出目标刻度
如果需要让248的刻度更醒目,可以单独调整其样式:
# 获取当前坐标轴对象 ax = plt.gca() # 遍历所有X轴刻度标签,修改目标刻度样式 for tick in ax.get_xticklabels(): if tick.get_text() == '248': tick.set_fontsize(40) # 放大字体 tick.set_color('red') # 设置醒目颜色
内容的提问来源于stack exchange,提问作者Priyanka Rajendran
相关产品推荐
相关产品推荐

