请更改代码使得能够得到直方图的具体数据
时间: 2023-10-03 22:09:21 浏览: 32
要得到直方图的具体数据,可以使用`numpy`库中的`histogram()`函数来计算直方图的数据,然后再使用`matplotlib`库中的`bar()`函数来绘制直方图。以下是修改后的代码:
```python
for col in columns:
counts, bins = np.histogram(data[col], bins=50)
plt.figure()
plt.bar(bins[:-1], counts, width=np.diff(bins), edgecolor='white')
plt.title(col)
plt.xlabel("Value")
plt.ylabel("Frequency")
```
相比之前的代码,修改后的代码将`sns.histplot()`函数改为了`numpy.histogram()`函数,函数的返回值是直方图的计数和边缘数组,分别赋值给了`counts`和`bins`变量。然后使用`plt.bar()`函数绘制直方图,其中`bins[:-1]`是指定直方图的柱子位置,`counts`是指定柱子高度,`width=np.diff(bins)`是指定柱子宽度,`edgecolor='white'`是指定柱子边框颜色。最后按照之前的代码设置了标题、X轴和Y轴标签。执行完毕后,可以得到每个直方图的具体数据。
相关问题
python左侧直方图
您可以使用matplotlib库来绘制Python中的左侧直方图。下面是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 示例数据
plt.hist(data, bins=5, orientation='horizontal') # 绘制直方图
plt.xlabel('Frequency') # x轴标签
plt.ylabel('Value') # y轴标签
plt.title('Left-Skewed Histogram') # 图表标题
plt.show() # 显示图表
```
在这个例子中,我们使用了matplotlib的`hist`函数来创建直方图,通过`bins`参数指定了直方图的柱子数量,并通过`orientation`参数设置为'horizontal',使得直方图的方向为水平。您可以根据您的具体数据和需求进行修改和调整。最后使用`show`函数显示图表。
希望可以帮到您!如果还有其他问题,请随时提问。
# 获取除了第一列和最后一列的所有列 columns = data.columns[1:-1] # 遍历每一列数据,绘制频率分布图 for col in columns: plt.figure() data[col].hist(bins=20) plt.title(col) plt.xlabel("Value") plt.ylabel("Frequency") plt.show()如何更改这个代码使得绘制的频率分布直方图可以分布均匀
如果您想让频率分布直方图更加均匀,可以考虑修改 `bins` 参数的值。`bins` 参数表示直方图的柱子数量,如果将其增加,则可以使直方图更加细致,分布更加均匀。
例如,将 `bins` 参数的值从 20 增加到 50,可以将直方图分成更多的小区间,从而更加均匀地展示数据分布:
```python
# 获取除了第一列和最后一列的所有列
columns = data.columns[1:-1]
# 遍历每一列数据,绘制频率分布图
for col in columns:
plt.figure()
data[col].hist(bins=50) # 修改 bins 参数的值为 50
plt.title(col)
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
```
尝试适当调整 `bins` 参数的值,找到最适合您数据的分布均匀度的值。