Matplotlib 仅绘制一个点

问题描述 投票:0回答:2

我正在尝试绘制直方图来查看所有观察结果的分布,但不断获得只有一个条形图(直方图)或一个点(散点图)的图。

样本数据:

状态 数据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()

散点图

python matplotlib visualization
2个回答
0
投票

您期望从

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()

并看看它是如何绘制的:

hist


0
投票

@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()
© www.soinside.com 2019 - 2024. All rights reserved.