【发布时间】:2019-03-28 13:28:47
【问题描述】:
我正在绘制一个图表来可视化一些排序算法在不同数据大小上的运行时间。条件是运行时间应该在 y 轴上,数据大小在 x 轴上。我通过将不同算法的运行时间与数据大小相比较来绘制散点图,并给每个标记不同的颜色。同样,我绘制了 3 个其他数据大小,但不同算法的颜色相同。我想在图表中添加一个图例,以便用户了解这个特定的颜色点对应于这个特定的算法。我想不出一个合适的方法。我在网上搜索了一些场景,他们正在根据不同的散点图添加图例。但是,我想为基于颜色的点添加一个图例。
另外,对于这种情况,您能否建议一个更好的绘图曲线。
这是我用于图形生成的代码。
def visualize_datasize(dataset):
datasize=len(dataset)
for i in range(4,0,-1):
run_time=getRunTime(dataset,int(datasize/i))
plt.scatter([int(datasize/i)]*5,run_time,color=['red','green','blue','yellow','black'])
plt.xlabel('Size of the dataset')
plt.ylabel('Run time')
plt.title('Run time vs datasize for various sorting algorithms')
plt.show()
【问题讨论】:
-
请显示您用于生成此图的代码。
-
在问题中添加了代码。
-
您可以转置数据,即遍历不同的算法并为每个算法创建一个单一颜色的散点图。然后在每个散点图中定义一个标签可以轻松地自动获取图例。否则,您当然可以创建自定义图例 (
plt.legend(handles=..., labels=...))。
标签: python matplotlib plot legend scatter-plot