你可以使用下面的基本语法来从Matplotlib中的绘图中移除图例:
import matplotlib.pyplot as plt
plt.legend('', frameon=False)
引号''告诉Matplotlib在图例中不放置任何变量,frameon参数告诉Matplotlib删除图例周围的框架。
下面的例子展示了如何在实践中使用这种语法。
例子:在Matplotlib中删除图例
假设我们有如下的pandas DataFrame,它包含了各种篮球运动员的信息:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'position': ['G', 'G', 'F', 'F', 'G', 'F', 'F', 'F'],
'points': [5, 7, 7, 9, 12, 9, 9, 4]})
#view DataFrame
print(df)
team position points
0 A G 5
1 A G 7
2 A F 7
3 A F 9
4 B G 12
5 B F 9
6 B F 9
7 B F 4
我们可以使用下面的代码来创建一个堆叠的柱状图,以可视化每个球队和每个位置的球员的总得分:
import matplotlib.pyplot as plt
#create stacked bar chart
df.groupby(['team', 'position']).size().unstack().plot(kind='bar', stacked=True)

注意,Matplotlib默认在右上角放置一个图例。
要创建这个没有图例的相同图表,我们可以使用下面的代码:
import matplotlib.pyplot as plt
#create stacked bar chart
df.groupby(['team', 'position']).size().unstack().plot(kind='bar', stacked=True)
#remove legend
plt.legend('', frameon=False)

这个叠加条形图与之前的图表相匹配,但图例已经被删除。
还要注意的是,我们可以使用同样的语法从Matplotlib的任何图中删除图例。
例如,下面的代码显示了如何在Matplotlib中创建一个饼图并删除图例:
import matplotlib.pyplot as plt
#create pie chart that shows total points scored by team
df.groupby(['team']).sum().plot(kind='pie', y='points')
#remove legend
plt.legend('', frameon=False)

其结果是一个没有图例的饼图。
其他资源
下面的教程解释了如何在Matplotlib中执行其他常见任务:
如何从Matplotlib图中删除刻度线
如何改变Matplotlib图的字体大小
如何在Matplotlib中为图添加平均线