Matplotlib中3D绘图Z轴标签显示不全问题求助
解决Matplotlib 3D图Z轴标签显示不全的问题
在绘制3D K-Means聚类图时,Z轴的长标签(比如Gender (0 = Female, 1 = Male))经常会被遮挡无法完整显示,下面是几个实用的解决办法:
1. 手动调整Z轴标签位置
直接修改标签的位置,让它远离坐标轴:
# 原代码设置Z轴标签的部分 ax.set_zlabel('Gender (0 = Female, 1 = Male)', fontsize=12) # 添加这行,调整标签的位置,第二个数值越小,标签越向外 ax.zaxis.label.set_position((0.5, -0.15))
2. 调整图表边距
给标签留出足够的显示空间,两种方式可选:
- 自动调整所有元素间距:
# 在plt.show()前添加 plt.tight_layout() plt.show()
- 手动设置边距,按需调整数值:
plt.subplots_adjust(bottom=0.2, left=0.15, right=0.85) plt.show()
3. 优化标签文本格式
要么让标签换行显示,要么调整旋转角度:
- 换行显示:
ax.set_zlabel('Gender\n(0 = Female, 1 = Male)', fontsize=12)
- 旋转标签角度:
ax.set_zlabel('Gender (0 = Female, 1 = Male)', fontsize=12, rotation=90)
4. 简化标签文本
如果不影响理解,直接缩短标签内容:
ax.set_zlabel('Gender (0=F,1=M)', fontsize=12)
修改后的完整代码示例(以调整标签位置为例)
# Plotting data points with cluster colors ax.scatter(x[:, 1], x[:, 2], x[:, 0], s=50, c=labels.astype(float)) # Plotting cluster centers markers = ['o', 'v', '^', '<', '>'] cluster_colors = {i: f'C{i}' for i in range(clusterNum)} for i in range(clusterNum): cluster_mask = labels == i ax.scatter(k_means.cluster_centers_[i, 1], k_means.cluster_centers_[i, 2], k_means.cluster_centers_[i, 0], s=200, marker=markers[i], c=cluster_colors[i], edgecolors='k', alpha=0.5) ax.scatter(x[cluster_mask, 1], x[cluster_mask, 2], x[cluster_mask, 0], s=50, c=cluster_colors[i], marker='o', edgecolors='k', alpha=0.5) ax.set_xlabel('Age', fontsize=12) ax.set_ylabel('Income', fontsize=12) ax.set_zlabel('Gender (0 = Female, 1 = Male)', fontsize=12) # 添加调整标签位置的代码 ax.zaxis.label.set_position((0.5, -0.15)) plt.title('K-Means Clusters (3D): Age|Income|Gender') # Create badass legend entries legend_entries = [plt.scatter([], [], s=50, c=cluster_colors[i], marker=markers[i], edgecolors='k', label='Cluster {}'.format(i)) for i in range(clusterNum)] # Again, a legend without a title, is a fokin spaghetti without # little meat balls. :) plt.legend(handles=legend_entries, scatterpoints=1, fontsize=10, title='Cluster Centers') plt.tight_layout() plt.show()
内容的提问来源于stack exchange,提问作者AmirChil
相关产品推荐
相关产品推荐

