【Python画图-Matplotlib-01】一文搞懂Matplotlib旋转x轴
本次修炼方法请往下查看
🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站
🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验。
🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100% 。
📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。
下滑查看解决方法
🎯 1. 基本介绍
在数据分析可视化使用Matplotlib画图时,经常会对数据进行x轴的翻转,默认情况下Matplotlib画图的x轴是0度的,当x轴的值过长时,展示出现的结果会比较难看,本文分享如果对x轴进行翻转。
💡 2. 使用方法
2.1 maplotlib进行画图实例
相关的代码实践如下所示:
import pandas as pd
import numpy as np
# 随机生成示例数据
np.random.seed(0) # 设置随机种子以获得可重现的结果
elevation_data = np.random.uniform(low=100.0, high=1000.0, size=100) # 随机生成100个高程值
# 创建DataFrame
df = pd.DataFrame({
'高程': elevation_data
})
from matplotlib import pyplot as plt
# 定义并使用 get_cut_cnt 函数
def get_cut_cnt(data, clo='高程', bins=4):
# 使用 pd.cut 进行区间划分
res = pd.cut(data[clo], bins=bins, include_lowest=True, right=False, labels=[str(i) for i in range(bins)])
# 过滤掉空值,尽管在我们的示例中可能不存在空值
res = data[~data[clo].isnull()]
# 统计每个区间的数量
res = res.groupby(res[clo]).size().reset_index(name='cnt')
# 打印结果
print(res)
# 绘制条形图
fig, ax = plt.subplots()
ax.bar(res[clo], res['cnt'], color='g', width=0.5)
# 设置x轴标签
plt.xlabel('Bin Ranges')
plt.ylabel('Counts')
plt.title('Counts of Data Points in Each Bin')
plt.show() # 显示图形
return res
# 调用函数并生成条形图
res = get_cut_cnt(df)
具体的结果如下所示:
对x轴进行旋转的代码如下所示:
from matplotlib import pyplot as plt
# 定义并使用 get_cut_cnt 函数
def get_cut_cnt(data, clo='高程', bins=4):
# 使用 pd.cut 进行区间划分
res = pd.cut(data[clo], bins=bins, include_lowest=True, right=False, labels=[str(i) for i in range(bins)])
# 过滤掉空值,尽管在我们的示例中可能不存在空值
res = data[~data[clo].isnull()]
# 统计每个区间的数量
res = res.groupby(res[clo]).size().reset_index(name='cnt')
# 打印结果
print(res)
# 绘制条形图
fig, ax = plt.subplots()
ax.bar(res[clo], res['cnt'], color='g', width=0.5)
# 设置x轴标签
ax.set_xticklabels(res[clo], rotation=45)
plt.xlabel('Bin Ranges')
plt.ylabel('Counts')
plt.title('Counts of Data Points in Each Bin')
plt.show() # 显示图形
return res
# 调用函数并生成条形图
res = get_cut_cnt(df)
结果如下所示:
🔍 3. 注意事项
二中降维技术在机器学习的处理中都是使用特别广泛的,但是在使用的过程中需要注意一些细节,具体如下所示:
- 确保传入的列名 clo 在 DataFrame 中存在,否则 pd.cut 将无法正确执行。
- pd.cut 函数的 include_lowest 参数确保了包含区间的最低值。
duplicates=‘drop’ 参数用于删除重复的区间标签,保证每个区间唯一。 - 在绘制条形图时,通过 ax.set_xticklabels 设置 x 轴的标签,并可以旋转标签以防止重叠。
🔧 4. 总结
本文介绍了如何使用 Pandas 对数据进行区间划分,并使用 Matplotlib 进行可视化展示。通过 get_cut_cnt 函数,我们可以快速得到数据在不同区间的分布情况,并以条形图的形式直观展示。这种方法在探索数据分布特征时非常有用,可以帮助我们快速识别数据的集中趋势和异常区间。希望这篇博客能够帮助你更好地理解并应用这些数据处理和可视化技巧。