gpt4 book ai didi

python - 在python中将多个值绘制到一个键

转载 作者:行者123 更新时间:2023-12-01 20:08:42 25 4
gpt4 key购买 nike

我正在尝试用这本字典制作散点图

d = {1: [1, 2, 3, 4, 5], 3: [3, 6, 9, 12, 15], 5: [5, 10, 15, 20, 25]}

我希望键位于 X 轴,值位于 Y 轴,并且还显示具有不同键值的图例。我已经尝试过这段代码-

import matplotlib.pyplot as plt

d = {1: [1, 2, 3, 4, 5], 3: [3, 6, 9, 12, 15], 5: [5, 10, 15, 20, 25]}
colors = list("rgbk")
x, y =[], []
for i in d.keys():
for j in d[i]:
x.append(i)
y.append(j)
plt.scatter(x, y, color = colors.pop())
plt.legend(d.keys())
plt.show()

但这给了我一个只有一种颜色的点的图,但图例没问题。

This is the output image that I am getting

最佳答案

在这种情况下,最好使用 plt.subplots(),这样您就可以重复使用相同的。颜色迭代是免费的,但我保留了它,不确定您是否更喜欢 rgbk

如果可能,请避免在 Python 中使用 for 循环,以获得更好的可读性和性能。

import matplotlib.pyplot as plt

d = {1: [1, 2, 3, 4, 5], 3: [3, 6, 9, 12, 15], 5: [5, 10, 15, 20, 25]}
colors = list("rgbk")

fig, ax = plt.subplots()

for x, ys in d.items():
ax.scatter([x] * len(ys), ys, color = colors.pop(), label=x)

plt.legend()
plt.show()

plot

如果您正在处理大型数组,请考虑使用numpy。在这种情况下,您可以重新调整 key 的大小,例如如下所示:

import matplotlib.pyplot as plt
import numpy as np

d = {1: [1, 2, 3, 4, 5], 3: [3, 6, 9, 12, 15], 5: [5, 10, 15, 20, 25]}
colors = list("rgbk")

fig, ax = plt.subplots()

for x, ys in d.items():
ax.scatter(np.full_like(ys, x), ys, color = colors.pop(), label=x)

plt.legend()
plt.show()

关于python - 在python中将多个值绘制到一个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62075827/

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