首页 > 解决方案 > Matplotlib Legend 的一个问题

问题描述

这是我的 python 代码,用于显示火车票价、到伦敦的时间和到马厩的时间。出于某种原因,情节图例中有一个标有“票”的额外项目。这是什么,我该如何摆脱它?

此外,当我尝试包含 title_fontsize 参数时,我会被抛出:

__init__() 得到了一个意外的关键字参数“title_fontsize”

我将如何更改图例标题的大小?

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt

flat_data = pd.read_csv("C:/BLAHBALHBLAH/flats.csv")

X = flat_data["commute"]
Y = flat_data["ticket"]
size = 180 * flat_data["stables"]
names = list(flat_data["location"])

plt.figure(figsize=(20,15))
plt.scatter(X,Y,s=size, alpha=0.4,cmap="bone",c="r")
plt.xlabel("Time to London (mins)")
plt.ylabel("Cost of Season Ticket (£)")
plt.axis([32,80,1500,5200])
plt.grid(False)

for index, name in enumerate(names):
    plt.annotate(name, (X[index]-len(name)/6, Y[index]),size=15) 


for time in [7,36]:
    plt.scatter([], [], c='r', alpha=0.4, s=180*time, label=str(time) + ' mins')

plt.legend(frameon=False, labelspacing=4, title='Time to Stables', handletextpad =3,fontsize="x-large")

plt.show()

阴谋

谢谢!

标签: pythonmatplotliblegend

解决方案


关于您的额外图例,您应该在第一次调用时抑制图例条目scatter()

plt.scatter(X,Y,s=size, alpha=0.4,cmap="bone",c="r", label=None)   # or label=""

推荐阅读