質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1290閲覧

ヒストグラムを棒グラフになおしたい

kkashi89sk

総合スコア12

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/10/24 00:21

編集2020/10/24 23:01

(イメージ図を追加しました)
イメージ説明
xのラベルの個数とyのラベルの個数が違うときグラフ化の方法がわかりません。(追加:for文でbinの平均値をとっているので個数は10と10で一致していました)

あとxラベルをbinの平均値、yラベルは度数を表示したいのですが(あとは表示方法ですラベルにforでつくったグループのxをいれてyラベルに度数hist?を表示できれば

import numpy as np hist,bins = np.histogram(df2['kcal']) print("histの長さ",len(hist)) print("binsの長さ",len(bins)) x = [] #ラベルとして、各binの平均値を用意する for i in range(len(bins)-1): x.append(int((bins[i]+bins[i+1])/2)) import matplotlib.pyplot as plt labels = x x = range(0,10) y = [5,10,15,20,30,35] plt.grid(True) plt.title("histogram of kcal") plt.xlabel('kcal') plt.ylabel('frequency') plt.bar(x,y,tick_label = labels) plt.show() コード

histの長さ 10
binsの長さ 11


ValueError Traceback (most recent call last)
<ipython-input-26-ca626a22e113> in <module>
16 plt.xlabel('kcal')
17 plt.ylabel('frequency')
---> 18 plt.bar(x,y,tick_label = labels)
19
20 plt.show()

~\anaconda3\lib\site-packages\matplotlib\pyplot.py in bar(x, height, width, bottom, align, data, **kwargs)
2405 x, height, width=0.8, bottom=None, *, align='center',
2406 data=None, **kwargs):
-> 2407 return gca().bar(
2408 x, height, width=width, bottom=bottom, align=align,
2409 **({"data": data} if data is not None else {}), **kwargs)

~\anaconda3\lib\site-packages\matplotlib_init_.py in inner(ax, data, *args, **kwargs)
1563 def inner(ax, *args, data=None, **kwargs):
1564 if data is None:
-> 1565 return func(ax, *map(sanitize_sequence, args), **kwargs)
1566
1567 bound = new_sig.bind(ax, *args, **kwargs)

~\anaconda3\lib\site-packages\matplotlib\axes_axes.py in bar(self, x, height, width, bottom, align, **kwargs)
2338 yerr = self._convert_dx(yerr, y0, y, self.convert_yunits)
2339
-> 2340 x, height, width, y, linewidth = np.broadcast_arrays(
2341 # Make args iterable too.
2342 np.atleast_1d(x), height, width, y, linewidth)

<array_function internals> in broadcast_arrays(*args, **kwargs)

~\anaconda3\lib\site-packages\numpy\lib\stride_tricks.py in broadcast_arrays(*args, **kwargs)
262 args = [np.array(_m, copy=False, subok=subok) for _m in args]
263
--> 264 shape = _broadcast_shape(*args)
265
266 if all(array.shape == shape for array in args):

~\anaconda3\lib\site-packages\numpy\lib\stride_tricks.py in _broadcast_shape(*args)
189 # use the old-iterator because np.nditer does not handle size 0 arrays
190 # consistently
--> 191 b = np.broadcast(*args[:32])
192 # unfortunately, it cannot handle 32 or more arguments directly
193 for pos in range(32, len(args), 31):

ValueError: shape mismatch: objects cannot be broadcast to a single shape

サンプルデータ

107,木,0,カレイ唐揚げ野菜あんかけ,415
2014/1/17,85,金,1,回鍋肉,430
2014/1/20,126,月,1,ジューシーメンチカツ,375
2014/1/21,129,火,1,サバ焼味噌掛け,447
2014/1/22,126,水,1,datetime,num,week,soldout,name,kcal
2014/1/7,131,火,0,カレー入りソーセージカツ,404
2014/1/8,128,水,0,豚肉の生姜焼,462
2014/1/9,129,木,1,鶏チリソース,435
2014/1/10,87,金,0,手作りロースカツ,440
2014/1/14,129,火,1,鶏の照り焼きマスタード,376
2014/1/15,134,水,0,さんま辛味焼,450
2014/1/16,手作りひれかつとカレー,426
2014/1/23,107,木,0,酢豚,400
2014/1/24,92,金,1,鶏のレモンペッパー焼orカレー,418
2014/1/27,126,月,1,チンジャオロース,415
2014/1/28,120,火,0,海老フライタルタル,445
2014/1/29,121,水,1,チーズ入りメンチカツ,450
2014/1/30,105,木,1,鶏の唐揚げ,448
2014/1/31,92,金,1,メダイ照り焼,460
2014/2/3,139,月,1,ハンバーグカレーソース,445
2014/2/4,121,火,1,さわら焼味噌掛け,430
2014/2/5,126,水,1,鶏のピリ辛焼き,420
2014/2/6,111,木,1,手作りロースカツ,435
2014/2/7,91,金,1,ホタテクリ―ムシチュー,425
2014/2/10,137,月,0,鶏の唐揚げおろしソース,423
2014/2/12,111,水,0,ますのマスタードソース,415
2014/2/13,84,木,0,回鍋肉,438
2014/2/14,86,金,1,ロース甘味噌焼き,432
2014/2/17,137,月,1,チンジャオロース,416
2014/2/18,99,火,0,海老フライとホタテ串カツ,426
2014/2/19,113,水,0,ハンバーグ和風きのこソース,405
2014/2/20,85,木,1,タンドリーチキン,426
2014/2/21,113,金,0,酢豚orカレー,410
2014/2/24,129,月,1,ポークハヤシ,408
2014/2/25,104,火,0,マーボ豆腐,396
2014/2/26,104,水,0,鶏チリソース,384
2014/2/27,90,木,1,白身魚唐揚げ野菜あんかけ,436
2014/2/28,69,金,0,手作りひれかつ,428
2014/3/3,131,月,0,ハンバーグカレーソース,407
2014/3/4,100,火,1,回鍋肉,413
2014/3/5,110,水,1,メンチカツ,393
2014/3/6,77,木,0,チキンクリームシチュー,409
2014/3/7,73,金,1,ボローニャ風カツ,396
2014/3/10,123,月,0,海老クリーミ―クノーデル,385
2014/3/11,89,火,0,肉じゃが,397
2014/3/12,68,水,0,ビーフカレー,370
2014/3/13,80,木,1,手作りロースカツ,372
2014/3/14,70,金,1,カレイ野菜あんかけ,360
2014/3/17,129,月,0,鶏の唐揚げおろしソース,382
2014/3/18,90,火,1,チーズ入りハンバーグ,400
2014/3/19,72,水,1,越冬キャベツのメンチカツ,392
2014/3/20,100,木,1,鶏の親子煮,372
2014/3/24,102,月,0,マーボ豆腐,350
2014/3/25,77,火,0,手作りひれかつ,407
2014/3/26,51,水,0,肉団子クリームシチュー,392
2014/3/27,55,木,1,ロース甘味噌焼き,315
2014/3/28,106,金,0,キーマカレー,
2014/3/31,84,月,0,青椒肉絲,349
2014/4/1,125,火,1,メンチカツ,377
2014/4/2,99,水,0,肉じゃが,380
2014/4/3,100,木,1,酢豚,390
2014/4/4,90,金,1,和風ソースハンバーグ,350
2014/4/7,107,月,0,青梗菜牛肉炒め,387
2014/4/8,96,火,1,肉団子のシチュー,353
2014/4/9,88,水,1,青椒肉絲,376
2014/4/10,87,木,0,鶏の唐揚げおろしソース,362
2014/4/11,128,金,1,チキンカレー,
2014/4/14,92,月,0,ビーフトマト煮,340
2014/4/15,82,火,0,ポーク生姜焼き,370
2014/4/16,57,水,0,カレイ唐揚げ野菜あんかけ,330
2014/4/17,57,木,0,牛丼風煮,333
2014/4/18,56,金,1,鶏の味噌漬け焼き,325
2014/4/21,109,月,0,牛肉筍煮,375
2014/4/22,78,火,1,マーボ豆腐,382
2014/4/23,63,水,0,手作りひれかつ,340
2014/4/24,56,木,1,鶏の照り焼きマヨ,360
2014/4/25,80,金,0,中華丼,
2014/4/28,54,月,0,タンドリーチキン,342
2014/4/30,97,水,1,豚味噌メンチカツ,368
2014/5/1,64,木,0,マーボ茄子,415
2014/5/2,47,金,0,鶏の天ぷら,420
2014/5/7,88,水,1,肉じゃが,415
2014/5/8,59,木,0,メンチカツ,405
2014/5/9,58,金,1,手作りチキンカツ,434
2014/5/12,73,月,0,きのこソースハンバーグ,400
2014/5/13,70,火,1,白身魚唐揚げ野菜餡かけ,428
2014/5/14,64,水,1,メンチカツ,430
2014/5/15,58,木,1,タンドリーチキン,403
2014/5/16,126,金,0,ポークカレー,
2014/5/19,70,月,1,豚肉と茄子のピリ辛炒め,406
2014/5/20,71,火,0,鶏の味噌漬け焼き,425
2014/5/21,104,水,1,チーズハンバーグ,430
2014/5/22,54,木,1,サーモンのムニエル2色ソース,428
2014/5/23,65,金,0,牛肉コロッケ,400
2014/5/26,77,月,1,鶏のカッシュナッツ炒め,430
2014/5/27,79,火,0,牛肉すき焼き風,423
2014/5/28,74,水,1,鶏の唐揚げおろしソース,414
2014/5/29,64,木,1,いか天ぷら,438
2014/5/30,119,金,0,チキンカレー,
2014/6/2,74,月,0,ハンバーグケッチャップソース,420
2014/6/3,59,火,0,ゴーヤチャンプルー,418
2014/6/4,47,水,0,たっぷりベーコンフライ,424
2014/6/5,64,木,1,鶏の味噌漬け焼き,405
2014/6/6,93,金,0,手作りロースカツ,430
2014/6/9,74,月,1,牛肉ニンニクの芽炒め,417
2014/6/10,56,火,0,カレイ唐揚げ野菜餡かけ,426
2014/6/11,50,水,1,チャプチェ,413
2014/6/12,72,木,1,タンドリーチキン,440
2014/6/13,121,金,0,キーマカレー,
2014/6/16,76,月,1,牛すき焼き風,440
2014/6/17,63,火,0,ポークソテー韓国ソース,427
2014/6/18,66,水,1,ビーフストロガノフ,426
2014/6/19,56,木,0,アジ唐揚げ南蛮ソース,430
2014/6/20,57,金,0,炊き込みご飯,407
2014/6/23,72,月,0,マーボ茄子,421
2014/6/24,61,火,0,鶏のトマトシチュー,430
2014/6/25,64,水,1,豚の冷しゃぶ,420
2014/6/26,49,木,0,キスと野菜の天ぷら,414
2014/6/27,74,金,0,牛丼,
2014/6/30,65,月,0,鶏の塩から揚げ,435
2014/7/1,54,火,0,カレイ唐揚げ夏野菜あん,362
2014/7/2,50,水,1,タンドリーチキン,363
2014/7/3,53,木,0,白身魚ムニエル,412
2014/7/4,63,金,0,手作りトンカツ,432
2014/7/7,82,月,1,和風ハンバーグ,354
2014/7/8,56,火,0,かじきの甘辛煮,370
2014/7/9,54,水,1,チキンのコーンクリーム焼き,388
2014/7/10,48,木,0,プルコギ,386
2014/7/11,124,金,0,ポークカレー,
2014/7/14,65,月,1,鶏のから揚げねぎ塩炒めソース,418
2014/7/15,51,火,0,豚冷シャブ野菜添え,324
2014/7/16,53,水,1,白身魚フライ,434
2014/7/17,53,木,1,豚すき焼き,418
2014/7/18,55,金,1,エビフライ,401
2014/7/22,53,火,0,チンジャオロース,409
2014/7/23,56,水,1,八宝菜,355
2014/7/24,62,木,1,ジャンボチキンカツ,410
2014/7/25,83,金,0,ひやしたぬきうどん・炊き込みご飯,
2014/7/28,65,月,1,豚肉のマスタード焼き,432
2014/7/29,52,火,0,バーベキューチキン,449
2014/7/30,58,水,0,メンチカツ,441
2014/7/31,60,木,0,鶏のから揚げスイートチリソース,386
2014/8/1,38,金,0,豚肉の生姜焼き,380
2014/8/4,75,月,1,ハンバーグ(デミきのこバター),410
2014/8/5,54,火,1,鶏肉のカレー唐揚,400
2014/8/6,58,水,1,豚キムチ炒め,410
2014/8/7,63,木,0,チキン香草焼きマスタードソース,415
2014/8/8,129,金,0,チキンカレー,
2014/8/11,45,月,0,サーモンフライ・タルタル,411
2014/8/12,40,火,1,厚切ハムカツ,400
2014/8/18,56,月,0,洋食屋さんのメンチカツ,396
2014/8/19,53,火,1,牛スキヤキ,385
2014/8/20,56,水,0,豚ロースのピザ風チーズ焼き,423
2014/8/21,54,木,0,チキン南蛮,405
2014/8/22,100,金,1,ロコモコ丼,
2014/8/25,55,月,0,白身魚の南部焼き,412
2014/8/26,68,火,0,キーマカレー,400
2014/8/27,62,水,0,カレイの唐揚げ,410
2014/8/28,56,木,0,豚肉の胡麻シャブ,396
2014/8/29,39,金,0,チキンの辛味噌焼き,398
2014/9/1,65,月,1,ビーフシチュー,380
2014/9/2,68,火,1,名古屋味噌カツ,440
2014/9/3,53,水,0,親子煮,408
2014/9/4,54,木,1,チキンステーキ・きのこソース,405
2014/9/5,43,金,0,メンチカツ,380
2014/9/8,68,月,1,鶏肉の山賊焼き,385
2014/9/9,63,火,0,ハンバーグデミソース,460
2014/9/10,54,水,0,ぶりレモンペッパー焼き,450
2014/9/11,53,木,0,手作りチキンカツ,385
2014/9/12,115,金,0,ポークカレー,
2014/9/16,56,火,0,チーズメンチカツ,438
2014/9/17,49,水,0,チキンフリカッセ,430
2014/9/18,46,木,0,カレイ唐揚げ 甘酢あん,395
2014/9/19,45,金,0,厚切イカフライ,400
2014/9/22,29,月,0,筑前煮,395
2014/9/24,59,水,1,白身魚のマスタード焼き,408
2014/9/25,50,木,0,牛カルビ焼き肉,394
2014/9/26,45,金,0,ランチビュッフェ,
2014/9/29,56,月,1,豚肉と玉子の炒め,404
2014/9/30,40,火,0,鶏肉とカシューナッツ炒め,398

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/10/24 01:25

コードを検証するため、データのサンプルは用意出来ませんか?
coco_bauer

2020/10/24 01:59

xのラベルの個数とyのラベルの個数を一致させてください。 個数が違うという事は、xの値(ラベル)が有るのにyの値が無い(値が判らないので表示のしようがない)ものか、xの値(ラベル)が無いのにyの値が有る(棒の高さだけ判っていて、棒を書く場所が無いので表示できない)ものを存在させているという事ですから、「値がおかしい(ValueError)」と指摘されている訳ですから。
meg_

2020/10/24 03:18

データは確認しました。 df2['kcal'].hist()の結果のグラフと質問さんが実現したいグラフとの差は何でしょうか? 欲しいグラフのイメージを提示していただけると回答できるかもしれません。
guest

回答1

0

ベストアンサー

Python

1import numpy as np 2import pandas as pd 3import matplotlib.pyplot as plt 4 5df = pd.read_csv('data.csv') 6 7hist,bins = np.histogram(df['kcal']) 8 9x = [] #ラベルとして、各binの平均値を用意する 10for i in range(len(bins)-1): 11 x.append(int((bins[i]+bins[i+1])/2)) 12 13plt.bar(x, hist, width=10, tick_label=x) 14plt.grid(True) 15plt.title("histogram of kcal") 16plt.xlabel('kcal') 17plt.ylabel('frequency') 18plt.show()

イメージ説明

投稿2020/10/25 02:43

meg_

総合スコア10607

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問