使用数据绘制条形图

时间:2021-07-07 15:50:49

标签: python pandas numpy matplotlib

嗨,专家,我想使用附加的数据(data.txt)制作一个漂亮的条形图。在 x 轴上,我想从第一列数据绘制年份,例如 2007、2008 等,在 y 轴上绘制对应的第二列数据。最重要的是,我只想沿 x 轴仅提及 2007 2008 年等年份由于大量数据,x 轴上的标签不可见。

此处显示示例数据

2008-05-23  5.1
2008-05-21  6.5
2008-05-26  2.3
2008-06-10  3.7
2008-05-12  6.2
2008-07-06  5.7
2008-07-31  3.0

我在下面尝试过:脚本

import numpy as np
import matplotlib.pyplot as plt
x=np.loadtxt('data.txt')
plt.plot(x)
plt.show()

3 个答案:

答案 0 :(得分:1)

matplotlib 文档是一个很好的起点: https://matplotlib.org/stable/gallery/index.html

这应该有效:

 const callAdapter = await callComposite.loadCallComposite({
  containerId: 'video-call',
  groupId: '', // Provide any GUID to join a group
  displayName: displayName,
  userId: user,
  token: token
});

答案 1 :(得分:1)

dtype列的x更改为datetime,然后使用dt访问器获取year,然后将数据框按{{1}分组} 并使用 year 聚合列 y。现在使用 sum 方法创建条形图

plot

结果条形图:

enter image description here

答案 2 :(得分:0)

import pandas as pd

file = pd.read_csv("data.txt", sep='\t')
file['x'] = pd.to_datetime(file['x'], format='%Y/%m/%d')
fig, bx = plt.subplots()
bx.bar(file['x'], file['y'])
bx.set_xlabel('Year')
bx.set_ylabel('Amplitude')

或者你可以做一个解决方法(如果条形图显示的值不正确),替换

bx.bar(file['x'], file['y'])

bx.vlines(file['x'], 0, file['y'])

随着数据变大,x 轴中的年份标签将自动适应。