質問をすることでしか得られない、回答やアドバイスがある。15分調べてもわからないことは、質問しよう!新規登録して質問してみようただいま回答率85.83%トップMatplotlibに関する質問MatplotlibMatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。学校で基本的なコンピュータ科学の教育を促進することを意図しています。PythonPythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。pandasPandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。データ構造を変更したりデータ分析したりするときにも便利です。Q&A解決済グラフ横軸の時間目盛りの最小、最大を設定したいF91_総合スコア16MatplotlibMatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。学校で基本的なコンピュータ科学の教育を促進することを意図しています。PythonPythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。pandasPandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。データ構造を変更したりデータ分析したりするときにも便利です。14:05前提・実現したいこと機械稼働状況グラフの横軸表示を7:00スタートで24:00時終了としたい。グラフで機械が稼働している時間と停止している時間を可視化する事が目的です。※青塗りつぶしが稼働中、無色は停止(y軸は1が最大、0が最小)###ラズパイ光センサーのデータ記録方法ラズパイ光センサーにて光を読み取った場合にラズパイ内のエクセルに書き込みし、matplotlibでエクセルデータ読み取り、リアルタイムにグラフ更新をかけています。このグラフにより、機械稼働状況の見える化を行っています。データ記録方法は稼働していた場合にシグナルタワーの稼働ランプを読み取り、現在時刻と1を記録、停止していた場合は停止ランプが作動するので現在時刻と0を記録、無人稼働の場合は稼働ランプと停止ランプの両方が点灯し、現在時刻と2列目に1と記録します。機械の電源が入っていない場合は記録がされないようにしています。光を読み取った時間を記録し、それをグラフにしているだけなのでその日の最初に読み取った時間がグラフにて表示される時間(画像では22:29スタート、終了23:38)となってしまってますが、グラフ表示はスタートを7:00、終了を24:00としたいです。※機械の電源が入っていない時間(シグナルタワーの点灯が全て消灯)も常に読み取るようにすることも考えましたが、休日など常に記録が続いてしまい、エクセルファイルが大量になってしまうので断念しました。pass145GPIO.cleanup()光センサーにて記録しているエクセルデータラズベリーパイ光センサーにて、60秒稼働稼働ランプを読み取った場合にエクセルデータ1列目に現在時刻、2列目に1、3列目に0と記録、停止ランプを60秒読み取った場合に1列目に現在時刻、2列目に0と記録、3列目に0、電源が入っていない場合は何も記録なし、無人稼働の場合(稼働ランプ、停止ランプが両方点灯)は2列目が0で3列目が1なります。pass###plt.xlim(07:00,24:00)を入れた場合7:00と24:00のデータがない場合もあるので8:06~8:23のデータを読み取りましたが、時刻の表示がありませんでした。作業者の機械稼働スタートが何らかの理由で7:30などになってしまう事もあり、逆に24時以前に機械電源オフとなり記録がなくなることもあります。常に7:00~24:00のデータがあるのであればxlimで対応出来ると思いました。クリップ0気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。下記のような質問は推奨されていません。適切な質問に修正を依頼しましょう。編集strftime('%H:%M')にてエクセル書き込みしてからそれをそのまま読み取っていますので文字列のままと考えています。plt.xlim(07:00,24:00)が数値に対して文字なので表示されないって事も考えられますかね?それも考えましたが、pd.read_csvにて読み取る際に数値への変換方法などあるか調べたりしていましたが上手くいっていません。05:25文字列でplotすると、categoricalとして扱われるので、上限とか下限とかの概念が存在しません。'07:00'から'24:00'まで埋めてやらないといけません。xlimで制御したいなら、なんらかの数値データに変換してやる必要があります。pandasで時刻だけのデータを扱いにくいのと、24:00というのも時刻として扱えません(23:59までで24:00は翌日の00:00)ので、ちょっと面倒なところがありそうです。11:53plotをstrftimeで変換せずに700~2400の数値でやってみたりしましたが、この場合760なども存在してしまい、グラフに空白が出来てさすがに時間として見づらいので断念しました。上限値)で、グラフに表示するX軸の範囲を設定することができます。以下プロット例です(plt.xlim()ではなくax.set_xlim()を使用していますが、やっていることは同じです)。データは「matplotlibにて読み取っているエクセルデータ」に貼っていただいたものを使っていますが(データの読み込みに使っているのはmatplotlibではなくpandasでしょう)、実際には記録自体がされていない時間もあるとのことなので(「光センサーにて記録しているエクセルデータ」の図も23:27と23:28が欠けている)、8時台の連続した2分、9時台からも1分のデータを間引いています。文字列については、現在の実際のプロットでどこに配置されているのか質問文からは分からなかったので、適当なところに配置しています。上記プロットのコードは以下です。"稼働"])5758plt.tight_layout()59plt.show()データの扱いについては説明が必要かと思いますので、以下に説明します。parse_dates=True)header=Noneでデータの1行目が列名として読み込まれることを防ぎます。names=[0,1]で列名を振り直します(後でDataFrameを結合するために必要)。parse_dates=Trueで時間の列を日付型(datetime64[ns]型)のインデックスとして読み込みます。日付は自動的に今日の日付が設定されます。読み込み結果は次のようになります。0...と補完されます。len(data)でデータ数(何分観測したか)を取得しておきます。分のデータを作成します。df_startの内容は以下です。分のデータを作成します。df_endの内容は以下です。分のデータを結合します。結果として次のようなデータが完成します。0このデータをプロットします。