Matplotlib散点图添加标题与坐标轴标签的解决方案
实现预期可视化效果的修改方案
现有代码未显式调用matplotlib的标题、坐标轴标签设置接口,同时可优化点样式、布局配置匹配参考效果,核心修改逻辑如下:
- 在坐标轴对象初始化完成后,通过
set_title()方法设置图表标题 - 通过
set_xlabel()、set_ylabel()方法分别设置横、纵坐标轴标签 - 区分角点、中心点的散点颜色、尺寸,避免两类视觉元素混淆
- 增加自动布局适配,解决标题、标签被画布边缘截断的问题
- 可选配置网格、图例,和预期可视化效果对齐
修改后的完整可运行代码如下:
import numpy as np from matplotlib import pyplot from Assembly import AssembleCenterCoordinates def centerPlot(G, A, Values, axis_size): coorCenter = AssembleCenterCoordinates(G, A) coorCorner = G.get('coor') # 数值保留2位小数 Values = [np.format_float_positional(Values[i], precision=2) for i in range(len(Values))] # 固定画布尺寸,避免元素挤压 fig = pyplot.figure(figsize=(8,8)) ax = fig.add_subplot(111) ax.set_ylim(-axis_size,axis_size) ax.set_xlim(-axis_size,axis_size) ax.set_aspect('equal', adjustable='box') # 设置标题与坐标轴标签 ax.set_title("正方形点位分布与数值标注", fontsize=14, pad=15) ax.set_xlabel("X 坐标", fontsize=12) ax.set_ylabel("Y 坐标", fontsize=12) # 区分两类点的显示样式 pyplot.scatter(coorCorner[:,0], coorCorner[:,1], c='dimgray', s=20, label='正方形角点') pyplot.scatter(coorCenter[:,0], coorCenter[:,1], c='#1f77b4', s=45, label='正方形中心点') # 添加网格与图例 ax.grid(linestyle='--', alpha=0.6) ax.legend() for i,j,k in zip(coorCenter[:,0],coorCenter[:,1],Values): # 调整标注偏移量,避免文字遮挡点位 ax.annotate(str(k), xy=(i,j), xytext=(7,7), textcoords='offset points', fontsize=10) # 自动调整布局,防止标题、标签被截断 pyplot.tight_layout() pyplot.show()
可根据实际需求修改
set_title、set_xlabel、set_ylabel传入的字符串自定义显示文字,fontsize参数控制文字大小,pad参数控制标题和绘图区域的间距。
内容的提问来源于stack exchange,提问作者lemonabsence
相关产品推荐
相关产品推荐

