python - 在python中绘制3个变量的折线图
问题描述
Country Month GDPA
USA January 5
USA February 10
USA March 5
Canada January 7
Canada February 4
Canada March 10
Mexico January 9
Mexico February 17
Mexico March 8
以上是我的数据框。
我想制作df的折线图。其中 x 轴是变量 Month。y 轴是 GDPA。每个国家/地区都有三个单独的线路。最好只使用 matplotlib。
plt.plot(df[‘Country’], df[‘GDPA’], df[‘Month’]
我上面的代码没有产生预期的图表,因为线是连接的,甚至没有考虑 GDPA 值。
我希望 x 轴是:1 月 2 月 3 月
y 轴是 GDPA 值。
并且有 3 行(每个国家/地区)
解决方案
这可能不是尽可能优雅,但一种低级的方法是基本上只制作一组国家(所以你没有重复),然后循环该组并为每个国家绘制一条线。
import matplotlib.pyplot as plt
import pandas
d = {'Country': ['USA', 'USA', 'USA', 'Canada', 'Canada', 'Canada', 'Mexico', 'Mexico', 'Mexico'],
'Month': ['January', 'February', 'March', 'January', 'February', 'March', 'January', 'February', 'March'],
'GDPA': [5, 10, 5, 7, 4, 10, 9, 17, 8]}
df = pandas.DataFrame(data=d)
print(df)
country_set = set(df['Country'])
plt.figure()
for country in country_set:
selected_data = df.loc[df['Country'] == country]
plt.plot(selected_data['Month'], selected_data['GDPA'], label=country)
plt.legend()
plt.show()
纯python和matplotlib!
推荐阅读
- wordpress - Apache 在某些情况下会丢失引用信息
- ios - 如何在 SwiftUI 中打开 ImagePicker?
- wpf - 以编程方式添加在 XAML 中定义的内联
- java - 子类实例变量如何与父类实例联系
- php - 在子目录中使用 .htaccess 添加文件类型扩展名?
- c++ - 给定搜索代码的时间复杂度是多少?
- python - 如何用矩阵绘制两点?
- ruby-on-rails - 从应用程序中删除观察者后未初始化的常量 VideoObserver 错误
- java - 在 SQLite 数据库中设置默认值
- javascript - JSON.parse 中位置 0 处的 JSON 中的意外令牌 <