matplotlib 绘制元组列表(绘图和散点图)

mkshixfv  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(155)

我想把元组列表画成线和点,所以我有

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 3 * np.pi, 0.1)
y = np.sin(x)

lista=[(0,1,3),(1,4,5),(2,0,2),(3,5,10),(4,3,7)]
#lista=[(0,1),(1,4),(2,0),(3,5),(4,3)]

plt.scatter(*zip(*lista))
#plt.plot(*zip(*lista))  #<--- this works
plt.show()

我遵循了this answer上的建议
但是,当我绘制为直线时,它可以工作,但当我绘制为散点时,它只显示第一个值(0,1),而不显示第二个值(0,3)
散点图如何也能绘制两个数据系列
注意:第一个序列是元组中的第一个和第二个值,第二个序列是元组中的第一个和第三个值
这可以

工作
这是行不通的

njthzxwz

njthzxwz1#

最简单的方法是将列表拆分为两个数据集并分别绘制

import matplotlib.pyplot as plt

lista = [(0, 1, 3), (1, 4, 5), (2, 0, 2), (3, 5, 10), (4, 3, 7)]
xes = [t[0] for t in lista]
data_a = [t[1] for t in lista]
data_b = [t[2] for t in lista]

plt.scatter(xes, data_a, s=10, c='green', marker='s', label='Set A')
plt.scatter(xes, data_b, s=10, c='orange', marker='o', label='Set B')
plt.legend()
plt.show()

有关scatter的更多输入变量,请参见documentation

相关问题