首页 > 解决方案 > 在 matplotlib 中使用 3 个变量绘制条件

问题描述

嗨,我有如下数据。

示例代码

我需要动态编写代码来输入我的年份并在月份和消息数量之间绘制图表。我的数据中的 2016 年只有 6 个月,其余时间不存在。

我尝试将年份设置为索引并尝试绘图。

dff[dff.index == 2015].plot(marker='*')

但是我做的情节不是必需的。

标签: pythonpandasmatplotlib

解决方案


使用boolean indexingorquery进行过滤,然后plot使用参数xand y

year = 2014

df[df['year'] == year].plot(x='month', y='Number of messages', marker='*')

或者:

df.query("year == @year").plot(x='month', y='Number of messages', marker='*')

另一种方法是按列绘制Series索引:Month

df = df.set_index('month')
df.loc[df['year'] == year, 'Number of messages'].plot(marker='*')

df.set_index('month').query("year == @year")['Number of messages'].plot(marker='*')

推荐阅读