我正在尝试绘制直方图来查看所有观察结果的分布,但不断获得只有一个条形图(直方图)或一个点(散点图)的图。
样本数据:
状态 | 数据1 | 数据2 | 数据3 |
---|---|---|---|
AL | 712.85 | 657.63 | 3948.49 |
AK | 550.36 | 2325.58 | 3406.33 |
AZ | 335.01 | 1244.10 | 4416.46 |
增强现实 | 593.36 | 830.98 | 4634.21 |
CA | 629.92 | 2099.53 | 8666.15 |
二氧化碳 | 570.25 | 2065.55 | 6159.76 |
首先,我尝试使用以下方法绘制直方图来查看数据“总”变量的分布:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.hist('data3', data='df')
plt.show()
这导致一张图表显示一个单一的条形,而不是 50 个关系观察值的分布。我也尝试过改变垃圾箱的数量等,但没有取得成果。
我还尝试用其他两个变量(“消费税”和“财产”)绘制散点图,并返回一个散点图,其中一个点位于图形中心。
fig, ax = plt.subplots()
ax.scatter('data1', 'data2', data='df')
plt.show()
您期望从
ax.hist()
得到的行为并未按照您想象的方式实现。我建议你跑步:
import matplotlib.pyplot as plt
# Data points
data = [4, 5, 6]
# Weights for each data point
weights = [1, 2, 3]
fig, ax = plt.subplots()
ax.hist(data, weights=weights, bins=[4, 5, 6, 7]) # Explicitly setting bins to match your data points
plt.show()
并看看它是如何绘制的:
@BigBen 在他的评论中回答了这个问题 - 问题是将字符串传递给数据参数。
更正代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.hist('data3', data=df)
plt.show()
fig, ax = plt.subplots()
ax.scatter('data1', 'data2', data=df)
plt.show()