python - 从 matplotlib 中的直方图中提取数据点
问题描述
我使用 matplotlib 从文本文件中提取数据点来创建直方图。代码如下:
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
data1 = np.loadtxt('file1.txt')
data2 = np.loadtxt('file2.txt')
x = np.transpose(data1)[1]
y = np.transpose(data2)[1]
n, bins, patches = plt.hist(x, num_bins, facecolor='blue', alpha=0.5, label='electrons',
edgecolor='black', linewidth=0.7, range=[0, 450])
n, bins, patches = plt.hist(y, num_bins, facecolor='magenta', alpha=0.5, label='pions',
edgecolor='black', linewidth=0.7, range=[0, 450])
plt.show()
到目前为止一切顺利,我创建了一个直方图。但是,我的下一步是使用 clip() 函数,以便我可以为要显示的值定义一定范围,并将异常值映射到第一个(低于最小阈值的值)和最后一个 bin(值高于最大阈值)。我已将代码更改为:
n, bins, patches = plt.hist(np.clip(x, 8, 400), num_bins, facecolor='blue', alpha=0.5,
label='electrons', edgecolor='black', linewidth=0.7, range=[8, 400])
n, bins, patches = plt.hist(np.clip(y, 8, 400), num_bins, facecolor='magenta', alpha=0.5,
label='pions', edgecolor='black', linewidth=0.7, range=[8, 400])
这些图也在这里正确创建。现在我的问题:我想从这个新创建的绘图中获取数据点,因为数据现在已经更改,并且想将这些数据点作为列写入文本文件。我怎样才能做到这一点?
解决方案
推荐阅读
- flutter - 如何在颤动的for循环中动态创建滚动控制器
- android - 为什么 ViewPager 无限循环不起作用?
- string - 检查变量是否以冒号 `:` 开头
- metal - 金属深度测试不适用于多个绘制调用
- javascript - 如何遍历位于后端的整个数据
- dart - 是否可以创建实现或覆盖继承方法的 Dart 类扩展?
- python - Antlr4 for Python:将数据解析为部分
- python - Python 或 Powershell——读取 csv 并排序和收集要在电子邮件中发送的数据
- javascript - 子 Vue 组件数据未在第一页渲染时加载
- python - 如何将这些命令变成标准函数 - discord.py