You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python绘制直方图:设置不等间距区间与坐标轴

如何在Matplotlib中绘制自定义区间的直方图

没问题,我来帮你实现符合需求的直方图!核心就是利用Matplotlib的hist()函数的bins参数直接指定你想要的区间边界,下面是完整的步骤和代码示例:

步骤1:准备数据与导入库

首先我们需要导入必要的库,并且读取你的时间-压力数据(这里用你提供的示例数据演示):

import matplotlib.pyplot as plt
import pandas as pd

# 读取你的数据(如果是CSV文件可以用pd.read_csv())
data = pd.DataFrame({
    'Time': ['1/1/2017 0:00', '3/1/2017 0:10', '4/1/2017 0:20', '5/1/2017 0:30', 
             '6/1/2017 0:40', '7/1/2017 0:50', '12/1/2017 1:00'],
    'Pressure': [5.8253, 4.2785, 5.20041, 4.40774, 4.03228, 5.011924, 3.9309888]
})

步骤2:定义自定义区间

按照你的需求,我们设置区间边界为[0, 40, 60, 65, 70, 75, 80],这样直方图会自动将数据分到对应的区间中:

custom_bins = [0, 40, 60, 65, 70, 75, 80]

注:如果你的数据中有40-60之间的值,且你不想展示这个区间的柱子,可以先筛选数据排除该范围:

filtered_data = data[(data['Pressure'] < 40) | (data['Pressure'] >= 60)]

步骤3:绘制直方图

调用plt.hist()并传入自定义区间,同时设置样式让它更接近你提供的示例图:

plt.figure(figsize=(8, 6))
# 绘制直方图,指定自定义区间、颜色和边缘色
n, bins, patches = plt.hist(data['Pressure'], bins=custom_bins, color='#1f77b4', edgecolor='black')

# 添加标签与标题
plt.xlabel('Pressure')
plt.ylabel('Frequency')
plt.title('Pressure Distribution')

# 设置x轴刻度为自定义区间的边界,和示例图对齐
plt.xticks(custom_bins)

# 显示图形
plt.show()

关键说明

  • bins=custom_bins:这是实现自定义区间的核心参数,Matplotlib会按照你给出的边界划分数据区间。
  • plt.xticks(custom_bins):确保x轴刻度显示你定义的区间值,让图表更清晰直观。
  • 如果你的数据有超出80的数值,可以在custom_bins末尾添加一个更大的边界(比如100),避免这些数据被忽略。

内容的提问来源于stack exchange,提问作者Unknown

火山引擎 最新活动