如何在 python 中使用全局颜色条绘制多个散点图?
How to plot multiple scatter plots with a global colourbar in python?
我有一个数据集,我从中计算出一个值,我已将其用于绘图的颜色条中。见下文:
我想弄清楚如何组合它以便在其上绘制另一个参数(见下文:)
我希望将颜色添加到每个 classes 的不同形状中。
使用的部分代码如下:
plt.figure(figsize=[12,10])
plt.scatter(x_offset1, y_offset1, s=2, c=index, cmap='jet', marker='.')
plt.scatter(x_offset2, y_offset2, s=2, c=index, cmap='jet', marker='^')
plt.scatter(x_offset3, y_offset3, s=2, c=index, cmap='jet', marker='v')
plt.scatter(x_offset4, y_offset4, s=2, c=index, cmap='jet', marker='x')
plt.colorbar()
这给出了错误:
ValueError: 'c' argument has 289 elements, which is inconsistent with 'x' and 'y' with size 3.
我知道 289 个元素是整个数据集的颜色数据,大小 3 是第一个 class 图的大小,但我不确定如何绘制颜色值只有3分。
您要查找的是 index
列表的 切片 。切片是这样工作的:
slice = pizza[:2]
并采用 list[start:stop:step]
的格式。因此,如果您的颜色从列表中的 第一项 变为 第三项 ,那么您会:
plt.scatter(x_offset4, y_offset4, s=2, c=index[1:3], cmap='jet', marker='x')
假设 index
包含 ["a", "b", "c", "d"]
(仅作为示例),index[1:3]
将 return ["a", "b", "c", "d"]
。这个操作并没有修改原来的列表,所以index
在index[1:3]
之后还是["a", "b", "c", "d"]
。
我有一个数据集,我从中计算出一个值,我已将其用于绘图的颜色条中。见下文:
我想弄清楚如何组合它以便在其上绘制另一个参数(见下文:)
我希望将颜色添加到每个 classes 的不同形状中。
使用的部分代码如下:
plt.figure(figsize=[12,10])
plt.scatter(x_offset1, y_offset1, s=2, c=index, cmap='jet', marker='.')
plt.scatter(x_offset2, y_offset2, s=2, c=index, cmap='jet', marker='^')
plt.scatter(x_offset3, y_offset3, s=2, c=index, cmap='jet', marker='v')
plt.scatter(x_offset4, y_offset4, s=2, c=index, cmap='jet', marker='x')
plt.colorbar()
这给出了错误:
ValueError: 'c' argument has 289 elements, which is inconsistent with 'x' and 'y' with size 3.
我知道 289 个元素是整个数据集的颜色数据,大小 3 是第一个 class 图的大小,但我不确定如何绘制颜色值只有3分。
您要查找的是 index
列表的 切片 。切片是这样工作的:
slice = pizza[:2]
并采用 list[start:stop:step]
的格式。因此,如果您的颜色从列表中的 第一项 变为 第三项 ,那么您会:
plt.scatter(x_offset4, y_offset4, s=2, c=index[1:3], cmap='jet', marker='x')
假设 index
包含 ["a", "b", "c", "d"]
(仅作为示例),index[1:3]
将 return ["a", "b", "c", "d"]
。这个操作并没有修改原来的列表,所以index
在index[1:3]
之后还是["a", "b", "c", "d"]
。