我有一系列20个图(不是子图)可以在一个图中制作.我希望传说能够在盒子之外.同时,我不想改变轴,因为图形的大小减少了.请帮助我以下查询:
我正在尝试用 Python从这里选择一个 R ggplot2 图。我正在查看相关散点图,如下所示。

import pandas as pd
midwest= pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/midwest.csv")
Run Code Online (Sandbox Code Playgroud)
midwest.plot(kind='scatter', x='area', y='poptotal', ylim=((0, 50000)), xlim=((0., 0.1)))
Run Code Online (Sandbox Code Playgroud)
上面的代码本身不会对不同的类别进行颜色编码,而是如下所示。
但是,我们可以按“状态”对数据框进行分组,然后为每个组(ref)单独绘制散点图。
fig, ax = plt.subplots()
groups = midwest.groupby('state')
for name, group in groups:
ax.plot(group.area, group.poptotal, marker='o', linestyle='', ms=10,
label=name)
ax.legend(numpoints=1)
ax.set_ylim((0, 500000))
Run Code Online (Sandbox Code Playgroud)
虽然这确实让我们在散点图中得到了不同的类别,但它并没有让它们的大小增加popdensity.
import seaborn as sns
sns.pairplot(x_vars=["area"], y_vars=["poptotal"], data=midwest,
hue="state", size=5)
plt.gca().set_ylim((0, 50000))
Run Code Online (Sandbox Code Playgroud)
同样,这仅按类别绘制散点图。但是,我们仍然没有标记大小popdensity
下面是我们如何深入到每个数据点并在 Matplotlib 中绘制绘图。
fig, ax = plt.subplots()
groups …Run Code Online (Sandbox Code Playgroud) 有没有一种方法可以向散点图的大小与某些数据成比例的散点图添加辅助图例?
我写了下面的代码来生成散点图。散点图的颜色表示年份(取自用户定义的df),散点图的大小表示变量3(也取自df,但为原始数据):
import pandas as pd
colors = pd.DataFrame({'1985':'red','1990':'b','1995':'k','2000':'g','2005':'m','2010':'y'}, index=[0,1,2,3,4,5])
fig = plt.figure()
ax = fig.add_subplot(111)
for i in df.keys():
df[i].plot(kind='scatter',x='variable1',y='variable2',ax=ax,label=i,s=df[i]['variable3']/100, c=colors[i])
ax.legend(loc='upper right')
ax.set_xlabel("Variable 1")
ax.set_ylabel("Variable 2")
Run Code Online (Sandbox Code Playgroud)
此代码(包含我的数据)产生以下图形:
因此,虽然对颜色/年份进行了很好的明确定义,但分散的大小却没有。
如何添加辅助或附加图例来定义散点图的大小?