首页 > 解决方案 > 一次绘制整个数据框时,如何在 Jupyter Notebook 上的线图中更改单条线的颜色和线型?

问题描述

我试图弄清楚如何在一次绘制整个数据框后更改单条线的线条颜色和线条类型。

这是我的数据框的快照: 数据框

然后我用它来绘制它:

df_month.plot(figsize=(15,10), linewidth = 3.5)
plt.xlabel('Months', fontsize=18)
plt.ylabel('Average Precipitation (mm/d)', fontsize =19)
plt.title('Precipitation near Cape Scott Wind Farm', fontsize=22)
plt.savefig('CapeScott_precip.png')

结果是这样的:

图形

所以我想知道如何将“WRF-GFS”线更改为黑色虚线?任何指导都会有所帮助,谢谢!

标签: pythonpandasmatplotlibjupyter-notebookline-plot

解决方案


首先重置索引:

df_plot = df_month.reset_index()

循环遍历列以绘制它们,“WRF-GFS”列具有不同的参数:

for col_name in df_plot.drop(columns='Datetime', axis=1).columns:
    if col_name == 'WRF-GFS':
        plt.plot(df_plot['Datetime'], df_plot[col_name], color='black', linestyle='dashed', linewidth=3.5, label=col_name)
    else:
        plt.plot(df_plot['Datetime'], df_plot[col_name], linewidth=3.5, label=col_name)
plt.legend(loc='best')

用一些随机数据运行它:

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

np.random.seed(42)
df_plot = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), columns=list('ABCD'))
df_plot['Datetime'] = list(range(10))

for col_name in df_plot.drop(columns='Datetime', axis=1).columns.tolist():
    if col_name == 'B':
        plt.plot(df_plot['Datetime'], df_plot[col_name], color='black', linestyle='dashed', linewidth=3.5, label=col_name)
    else:
        plt.plot(df_plot['Datetime'], df_plot[col_name], linewidth=3.5, label=col_name)
plt.legend(loc='best')
plt.show()

在此处输入图像描述


推荐阅读