gpt4 book ai didi

python - 用散点图叠加直方图的列

转载 作者:行者123 更新时间:2023-11-28 17:44:02 25 4
gpt4 key购买 nike

我正在尝试可视化数据集,但我很早就陷入了这个过程,因为我不了解 matplotlib 的逻辑。

数据保存在两个相同格式的二维表中:

>>> data1
array([[ 1. , 1.384 ],
[ 2. , 3.65218531],
[ 3. , 3.17718531],
[ 1. , 2.34513543],
[ 2. , 3.43223443],
[ 3. , 1.23333255],
...
>>> data2
...

我想在同一个图中可视化这些表格。 data1表的行数比 data2 多得多, 所以我的想法是显示 data1与列直方图和data2有这样的点: Example

我知道如何制作数据的一维直方图,我知道如何制作散点图,但我如何获得彩色条柱并将它们与散点图叠加在正确的位置?

编辑:示例代码:

import pylab
import numpy
import matplotlib.pyplot as plt

fig = plt.figure()
data1 = numpy.array([[1,1.5],[2,1.7],[3,1.8],[1,1.2],[2,1.8],[3,2.2]])
data2 = numpy.array([[1,2.1],[2,1.3],[3,1.4],[1,1.1],[2,1.9],[3,2.25]])

plt.scatter(data1[:,0], data1[:,1])
plt.scatter(data2[:,0], data2[:,1], color="red")
plt.show()

在实际代码中 data1数组包含太多条目,以至于变得一团糟。因此需要“直方图”。

最佳答案

我想你想做这样的事情:

w = .2
bins = np.linspace(-4, 4, 11, endpoint=True)
fig, ax = plt.subplots()
for j in range(1, 15):
tt = randn(50)

nn, _bins = np.histogram(tt, bins)
# don't use scatter unless you need to change the size or color of the markers
ax.plot(j*np.ones_like(tt), tt, 'r.')
ax.imshow(nn.reshape(-1, 1)[::-1], extent=[j-w, j+w, -4, 4], cmap='Blues', aspect='auto', interpolation='none')


ax.set_xlim([0, 15])
ax.set_ylim([-4, 4])

将每个 bin 绘制为 Rectangle 可能会更好。

您可能还想为 imshow 使用 vmaxvmin kwargs,以便颜色在列之间具有相同的含义。

enter image description here

关于python - 用散点图叠加直方图的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20621190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com