0
私はこのコードを持っています。このコードは、datetimeに基づいた値の数を数えます。 プロット中にパンダが最初の行を省略します
station humidity
datetime
1 15101 15101
2 11171 11171
3 12057 12057
4 13031 13031
5 19835 19835
6 17421 17421
7 18145 18145
8 17980 17980
9 21347 21347
10 22050 22050
11 22265 22265
12 11279 1127>> >9
私は、同じことをしている、唯一の時間のために非常によく似たコードを持っており、それが動作:データフレームは、12行を持っているものの
# -*- coding: utf-8 -*-
"""
Created on Mon Nov 28 13:31:33 2016
@author: ...
"""
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import pandas as pd
import matplotlib.pyplot as plt
"""read and count"""
df = pd.read_csv('meteo_merged.csv', parse_dates=[1])
df['datetime'] = df.datetime.apply(lambda x: x.month)
x = df.groupby(['datetime']).count()
df2 = pd.read_csv('policja.csv', parse_dates=[1])
df2['datetime'] = df2.datetime.apply(lambda x: x.month)
p = df2.groupby('datetime').count()
"""plot"""
ax = x.plot(y='station', kind='bar', legend=False)
ax2 = p.plot(ax=ax, color='g', secondary_y=True, legend=False, rot=60, figsize=(8,6))
ax2.lines[0].set_linewidth(3)
"""axes labels etc."""
godziny = ['styczeń', 'luty', 'marzec', 'kwiecień', 'maj', 'czerwiec', 'lipiec', 'sierpień', 'wrzesień', 'październik', 'listopad', 'grudzień']
ax.set_xticklabels(godziny)
ax.set_ylabel('Liczba dni z ograniczoną widocznością dla danego miesiąca').set_color('blue')
ax2.set_ylabel('Liczba zdarzeń drogowych w danym miesiącu').set_color('green')
ax.set_xlabel('Miesi\xc4\x84c')
"""ticks settings"""
ax.spines['left'].set_color('blue')
ax.spines['right'].set_color('green')
ax.tick_params(axis='y', colors='blue')
ax2.tick_params(axis='y', colors='green')
fig = plt.gcf()
fig.savefig('mgla_miesiace.svg', format='svg', dpi=300)
X軸は、第二の月から始まりますすべての行がプロットされています。唯一の違いは次のような行です:
df['datetime'] = df.datetime.apply(lambda x: x.hour)
ここで問題があるとは思われません。また、コーディングに問題があるようです。私が試しても、±、ę、óなどの文字をプロットすることはできません。
コメントには、代わりに – GurV
の質問をする必要があります。plt.xlim([0,12])を追加すると、12本のバーが表示されますが、プロットは置き換えられます。両方のデータフレームの値は互いに対応していません。セカンダリyなしでオリジナルの棒グラフのみをプロットすると、期待される結果が得られます。データが欠落しません。 – Dreamscape