<ul>
<li>使用<code>groupby</code>和<code>stack</code>数据帧要容易得多。
<ul>
<li><code>min</code>和<code>max</code>可以同时聚合</李>
</ul>
</li>
<li><code>seaborn</code>是{<cd7>}的高级<code>API</code>,因此我建议使用<a href="https://seaborn.pydata.org/generated/seaborn.relplot.html" rel="nofollow noreferrer">^{<cd8>}</a>在同一个图中绘制两个目的地</li>
</ul>
<pre class="lang-py prettyprint-override"><code>import pandas as pd
import numpy as np # for sample data
import random # for sample data
import seaborn as sns
import matplotlib.pyplot as ply
# create sample data
np.random.seed(365)
random.seed(365)
rows = 300
data = {'days': np.random.randint(10, size=(rows)), 'dest': [random.choice(['JPA', 'FOR']) for _ in range(rows)], 'cost': np.random.randint(70, 120, size=(rows))}
df = pd.DataFrame(data)
# groupby, aggregate, and stack
dfg = df.groupby(['dest', 'days'])['cost'].agg(['min', 'max']).stack().reset_index().rename(columns={'level_2': 'range', 0: 'vals'})
# plot with seaborn relplot
(sns.relplot(x='days', y='vals', hue='range', col='dest', data=dfg, kind='line')
.set_axis_labels('Day Until Departure', 'Cost')
.set_titles('Destination: {col_name}'))
</code></pre>
<p><a href="https://i.stack.imgur.com/WXvR8.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/WXvR8.png" alt="enter image description here"/></a></p>