python 宽度为10的等宽直方图
时间: 2024-05-14 15:19:37 浏览: 103
可以使用 Python 中的字符串格式化操作来实现这个功能。以下是示例代码:
```python
data = [5, 6, 8, 4, 7, 9, 2, 5, 3, 7, 8, 6]
max_value = max(data)
min_value = min(data)
range_value = max_value - min_value
bin_width = range_value / 10
print(f"{'Value':<8} | {'Histogram':<20}")
for i in range(10):
bin_lower_bound = min_value + i * bin_width
bin_upper_bound = min_value + (i + 1) * bin_width
bin_count = len([x for x in data if bin_lower_bound <= x < bin_upper_bound])
hist = '#' * int(bin_count * 20 / len(data))
bin_label = f"[{bin_lower_bound:.1f}, {bin_upper_bound:.1f})"
print(f"{bin_label:<8} | {hist:<20}")
```
此代码将数据 `data` 分成 10 个等宽区间,然后计算每个区间中有多少个数据点,并使用直方图来可视化每个区间中的计数。输出将是:
```
Value | Histogram
[2.0, 2.8) |
[2.8, 3.6) |
[3.6, 4.4) | #
[4.4, 5.2) | ##
[5.2, 6.0) | ###
[6.0, 6.8) | ####
[6.8, 7.6) | #####
[7.6, 8.4) | ######
[8.4, 9.2) | ####
[9.2, 10.0)| #
```
注意,此代码中的直方图是使用 20 个符号(`#`)来表示每个区间的计数,因此每个符号实际上表示数据集的 5%。如果要更改直方图的宽度,请更改此值。
阅读全文