Обратите внимание: вы также можете передать Timedelta
параметру width
; Я считаю полезным четко указать, сколько единиц в x (например, дней здесь) займут столбцы. Кроме того, для некоторых временных рядов ширина int
менее интуитивна:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#fake data with minute frequency for an hour
dr = pd.date_range('01-01-2016 9:00:00', '01-01-2016 10:00:00', freq='1T')
df = pd.DataFrame(np.random.rand(len(dr)), index=dr)
#graph 1, using int width
plt.figure(figsize=(10,2))
plt.bar (df.index, df[0], color='gold', edgecolor='blue', align='center',
width=1)
#graph 2, using Timedelta width
plt.figure(figsize=(10,2))
plt.bar (df.index, df[0], color='gold', edgecolor='blue', align='center',
width=pd.Timedelta(minutes=1))
График 1:

График 2:

Это было то, что пришло мне в голову, когда я увидел вашу проблему, но я думаю, что настоящая проблема - это количество точек данных (как @ Johan C указал) . Уже когда вы строите график 365 дней, вы уже почти не можете видеть желтый (а к 3 или 4 годам он определенно исчезнет):

Вы также можете см. выше, что разные полосы визуализируются с разной видимой шириной, но это только потому, что в предоставленном пространстве слишком мало пикселей, чтобы точно отображать одинаковую заливку полосы и ширину полос для каждой точки.