【Matplotlib】x轴标签过多导致重叠、遗漏错位问题解决

您所在的位置:网站首页 双柱状图重叠怎么办 【Matplotlib】x轴标签过多导致重叠、遗漏错位问题解决

【Matplotlib】x轴标签过多导致重叠、遗漏错位问题解决

2024-07-14 09:58:53| 来源: 网络整理| 查看: 265

问题描述

用Matplotlib画数据图时需要对x轴添加标签,但由于数据量比较大(x轴30刻度,y轴20000),导致标签会重叠,完全看不清什么是什么,如图所示,于是便在matplotlib官方文档里面查找解决问题的办法。 在这里插入图片描述

解决办法 方法一 修改figsize

fig的大小很有可能就是造成该问题的原因,所以适当调节figsize:

# 绘制图表 fig, ax = plt.subplots(figsize=(10, 8)) 方法二 将标签进行一定角度的旋转以错开标签

注:speed 为本人所绘制图的x轴标签列表

ax.set_xticks(np.arange(len(speed)), labels=speed, rotation=90)

效果如下: 在这里插入图片描述

遗漏错位问题及解决方法

此外,在绘制图形的过程中我首先是从matplotlib里面import了tiker,采用了对x轴添加刻度来解决重叠问题,但是却发生了遗漏错位:

ax.xaxis.set_major_locator(ticker.MultipleLocator(1)) # 设置x轴标签间隔

出现了一个UserWarning:

UserWarning: FixedFormatter should only be used together with FixedLocator

查找资料后发现,原来该方法只能在使用axis .set_xticks固定刻度位置之后使用。否则,标签可能会出现在意想不到的位置(即可能遗漏错位)。故我便用了np.arange(len(speed))来设置刻度范围,之后我发现用ax.set_ticks即可满足我对x轴标签设置的问题。

源码 #!usr/bin/env python3 # !-*- coding = utf-8 -*- import os from matplotlib import cm, colors from sklearn import preprocessing import matplotlib.ticker as ticker import matplotlib.pyplot as plt import numpy as np import pandas as pd plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 dirPath = r'file.path' # 文件存储路径 DATA_file = os.path.join(dirPath, "file.csv") # 文件名称 DATA_data = pd.read_csv(Noise_file, sep=",", encoding='utf-8').to_numpy(dtype=float) # 将转速数据转换为字符串列表 data2_file = os.path.join(dirPath, "dile2.csv") data2_file_data = pd.read_csv(data2_file, sep=',', encoding='utf-8', header=None).to_numpy(dtype=str) # 为了读取第1行数据,需要设置header=None # print(data2_file_data.item(0)) DATA2 = [] for i in range(0, len(data2_file_data), 1): DATA2.append(data2_file_data.item(i)) # print(DATA2) # file数据归一化 file_data = pd.read_csv(file_file, sep=",", encoding='utf-8') min_max_normalizer = preprocessing.MinMaxScaler(feature_range=(0, 1)) # feature_range设置最大最小变换值(0, 1) scaled_data = min_max_normalizer.fit_transform(file_data) # 将数据缩放(映射)到设置固定区间 file_data_normalized = scaled_data # 获取file数据归一化后的最大最小值 minvalue = np.min(Noise_data_normalized) maxvalue = np.max(Noise_data_normalized) # 绘制图表 fig, ax = plt.subplots(figsize=(10, 8)) cmap = 'Blues' # colobar颜色样式 ax.matshow(file_data_normalized, aspect='auto', cmap=cmap, extent=(0, 30, 0, 19999), interpolation='nearest') # 将 2D 矩阵或数组可视化为颜色编码的图像 cNorm = colors.Normalize(minvalue, maxvalue) # 定义colorbar的范围 scalarMap = cm.ScalarMappable(norm=cNorm, cmap=cmap) # colorbar的参数导入 plt.colorbar(scalarMap, shrink=1, pad=0.1) # shrink按比例缩小色图,pad为色图与绘图的距离 # ax.xaxis.set_major_locator(ticker.MultipleLocator(1)) # 设置x轴标签间隔 ax.set_xticks(np.arange(len(DATA2)), labels=DATA2, rotation=90) ax.yaxis.set_major_locator(ticker.MultipleLocator(1000)) # 设置y轴标签间隔 # ax.set_xticklabels(DATA2, rotation=90) # 将标签进行旋转 ax.xaxis.set_ticks_position('bottom') # 把x轴标签放在下面 plt.title('file颜色图') plt.show()


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭