Python 我想在seaborn中制作一个自动传奇,但它没有';行不通

Python 我想在seaborn中制作一个自动传奇,但它没有';行不通,python,python-3.x,matplotlib,seaborn,legend,Python,Python 3.x,Matplotlib,Seaborn,Legend,我想在seaborn中制作一个自动传奇,但它不起作用。如何自动生成图例? plt.figure(figsize=(15, 10)) sns.pointplot(data=tmp_hs_df, x="Geographic Area", y="percent", color="lime", alpha=0.8, label="High School Not Graduated Rate") sns.pointplot(data=tmp_poverty_df, x="Geographic Area",

我想在seaborn中制作一个自动传奇,但它不起作用。如何自动生成图例?

plt.figure(figsize=(15, 10))
sns.pointplot(data=tmp_hs_df, x="Geographic Area", y="percent", color="lime", alpha=0.8, label="High School Not Graduated Rate")
sns.pointplot(data=tmp_poverty_df, x="Geographic Area", y="percent", color="red", alpha=0.8, label="Poverty Rate")
plt.legend()
plt.xlabel("States")
plt.ylabel("Percent")
plt.title("High School Not Graduate Rate AND Poverty Rate")
plt.grid()
tmp_hs_df和tmp_贫困_df

图表

检查此代码:

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd

x = np.linspace(0, 50, 11)
y1 = 20 - x
y2 = 15 - 0.8*x
df = pd.DataFrame({'x': x,
                   'y1': y1,
                   'y2': y2})

fig, ax = plt.subplots(1, 1, figsize=(15, 10))
sns.pointplot(ax = ax, data = df, x = 'x', y = 'y1', color = 'lime', alpha = 0.8)
sns.pointplot(ax = ax, data = df, x = 'x', y = 'y2', color = 'red', alpha = 0.8)
ax.legend(handles = ax.lines[::len(df) + 1], labels = ['High School Not Graduated Rate', 'Poverty Rate'])
ax.set_xlabel('States')
ax.set_ylabel('Percent')
ax.set_title('High School Not Graduate Rate AND Poverty Rate')
ax.grid()

plt.show()
这使得这个图:

您可以使用以下行管理图例:

ax.legend(handles = ax.lines[::len(df) + 1], labels = ['High School Not Graduated Rate', 'Poverty Rate'])
我使用自动生成的数据进行绘图,用数据替换它们。

检查此代码:

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd

x = np.linspace(0, 50, 11)
y1 = 20 - x
y2 = 15 - 0.8*x
df = pd.DataFrame({'x': x,
                   'y1': y1,
                   'y2': y2})

fig, ax = plt.subplots(1, 1, figsize=(15, 10))
sns.pointplot(ax = ax, data = df, x = 'x', y = 'y1', color = 'lime', alpha = 0.8)
sns.pointplot(ax = ax, data = df, x = 'x', y = 'y2', color = 'red', alpha = 0.8)
ax.legend(handles = ax.lines[::len(df) + 1], labels = ['High School Not Graduated Rate', 'Poverty Rate'])
ax.set_xlabel('States')
ax.set_ylabel('Percent')
ax.set_title('High School Not Graduate Rate AND Poverty Rate')
ax.grid()

plt.show()
这使得这个图:

您可以使用以下行管理图例:

ax.legend(handles = ax.lines[::len(df) + 1], labels = ['High School Not Graduated Rate', 'Poverty Rate'])
我使用自动生成的数据来绘制图,用数据替换它们