Python例項:僅繪製圖例而不繪製實際的圖形

凯鲁嘎吉發表於2024-06-05

Python例項:僅繪製圖例而不繪製實際的圖形

作者:凱魯嘎吉 - 部落格園 http://www.cnblogs.com/kailugaji/
Python例項:僅繪製圖例而不繪製實際的圖形,使用線條來表示不同的資料系列(即使這些資料系列在圖中沒有實際表示)。

# Python例項:僅繪製圖例而不繪製實際的圖形
# 使用線條來表示不同的資料系列(即使這些資料系列在圖中沒有實際表示)
# -*- coding: utf-8 -*-
# Author:凱魯嘎吉 Coral Gajic
# https://www.cnblogs.com/kailugaji/
import matplotlib.pyplot as plt
from matplotlib.legend import Legend
plt.rcParams['font.size'] = 15
plt.rcParams['font.family'] = 'Times New Roman'

fig, ax = plt.subplots(figsize=(10,6)) # 圖長寬比例
color = ['darkgoldenrod', 'orange', '#c56cf0', '#20bf6b', '#747d8c', '#f78fb3', 'b', 'r']
label = ['Algorithm 1', 'Algorithm 2',
         'Algorithm 3', 'Algorithm 4',
         'Algorithm 5', 'Algorithm 6',
         'Algorithm 7', 'Algorithm 8']
# 建立一個空白的線條列表,用於圖例
lines = [plt.Line2D([0], [0], color=color, label=label)
         for label, color in zip(label, color)]
# 使用ax.add_artist()新增圖例到圖表上
legend = Legend(ax, lines, [line.get_label() for line in lines],
                loc='center', # lower center
                ncol=int(len(label)/2), # 變成一行:int(len(label))
                bbox_to_anchor=(0.5, 0.5), # (0.5, -0.1)
                frameon=False)
ax.add_artist(legend)
ax.axis('off')
plt.savefig("Plot_Legend.jpg", bbox_inches='tight', dpi=500)
plt.show()

結果:

相關文章