teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

いろいろ対応し、スライドバーは出たが、描画したい図が出なくなった件について記載。

2018/06/30 04:34

投稿

H.K2
H.K2

スコア88

title CHANGED
@@ -1,1 +1,1 @@
1
- 箱ひげ図のhueをスイドバなどで動的に変更しながリアルタイムで描画し
1
+ 箱ひげ図のタを動的に変更するためwidgetを追加、箱ひげ図が表示されなくなっ
body CHANGED
@@ -56,4 +56,51 @@
56
56
 
57
57
  エラー内容から見ると、holoviews.plotting.commsのモジュールがないと言われているように見えるんですが、holoviews, parambokehは、conda install -c ioamでインストール済みですので、なぜこのエラーが出るのかまったくわかりません。。。
58
58
 
59
- https://ioam.github.io/parambokeh/user_guide/View_Parameters.html
59
+ https://ioam.github.io/parambokeh/user_guide/View_Parameters.html
60
+
61
+ 【追記2】
62
+ 下記のサイトを見ながら、parambokehのwidgetを出すことは成功したのですが、
63
+ 今度はholoviewsの箱ひげ図(boxwhisker)が表示されなくなりました…。
64
+ 参考サイト:
65
+ http://holoviews.org/reference/containers/matplotlib/DynamicMap.html
66
+ http://holoviews.org/user_guide/Dashboards.html
67
+ https://ioam.github.io/parambokeh/user_guide/Introduction.html
68
+
69
+ ソースコード:
70
+ ```ここに言語を入力
71
+ import param
72
+ import parambokeh
73
+ import numpy as np
74
+ import pandas as pd
75
+
76
+ import holoviews as hv
77
+ from bokeh.io import output_notebook
78
+
79
+ hv.extension('bokeh')
80
+ output_notebook()
81
+
82
+ class TestParmSetting(param.Parameterized):
83
+ df = pd.read_excel("サンプル.xlsx")
84
+ df_boxdraw = df.iloc[:,[13,64,76]].copy() # 必要な要素だけコピーしたdf作成
85
+ sel_list = list(df_boxdraw.columns)
86
+
87
+ th1 = param.Number(default=0.1, precedence=0)
88
+ th2 = param.Number(default=0.2, precedence=0)
89
+ par = param.ObjectSelector(default=sel_list[0],objects=sel_list)
90
+
91
+ def disp_box():
92
+ #df = pd.DataFrame(getattr(stocks, symbol))
93
+ #df['date'] = df.date.astype('datetime64[ns]')
94
+ return hv.BoxWhisker(df_boxdraw, kdims=['MC率'], vdims=['FL率']).sort()
95
+
96
+ def update(self, **kwargs):
97
+ print(self.th1, self.th2, self.par)
98
+ stocks = hv.DynamicMap(self.disp_box, kdims=[], vdims=[])
99
+ return stocks
100
+
101
+ example = TestParmSetting(name='TestBoxDisp')
102
+ layout = parambokeh.Widgets(example, on_init=True, callback=example.update)
103
+ ```
104
+
105
+ どなたかご存知であればご教示いただけると幸甚に存じます。
106
+ 何卒ご回答のほどよろしくお願いいたします。

3

イメージ図を追加しました。

2018/06/30 04:34

投稿

H.K2
H.K2

スコア88

title CHANGED
File without changes
body CHANGED
@@ -6,6 +6,9 @@
6
6
  これをスライドバー(ipywidgetなど)を用いて動的に変更しながら
7
7
  グラフを更新したいと考えています。(できればholoviewなどを用いたい)
8
8
 
9
+ イメージ(こんな感じ)
10
+ ![イメージ説明](cbeec0bee899cd82250ff57f33119b65.png)
11
+
9
12
  データ(一部)
10
13
      a b c
11
14
  0 80 3 50

2

parambokehを使って、どういうものを作りたいかを補足しました

2018/06/28 16:54

投稿

H.K2
H.K2

スコア88

title CHANGED
File without changes
body CHANGED
@@ -43,4 +43,14 @@
43
43
 
44
44
 
45
45
  ```
46
- 出来ればボタンなどを出したまま、グラフを更新するような処理にしたいのですが、どのように書けば実現できますでしょうか。
46
+ 出来ればボタンなどを出したまま、グラフを更新するような処理にしたいのですが、どのように書けば実現できますでしょうか。
47
+
48
+ 【追記】
49
+ 色々調べてみたのですが、parambokehというライブラリを使うと、Bokeh+ウィジェットを用いて、aの敷居値を動的に動かしてグラフを更新できそうに思いました。
50
+ しかし、下記サンプルをそのままjupyterで実行しても、下記エラーが出てしまい、動かないです。。。
51
+
52
+ ModuleNotFoundError: No module named 'holoviews.plotting.comms'
53
+
54
+ エラー内容から見ると、holoviews.plotting.commsのモジュールがないと言われているように見えるんですが、holoviews, parambokehは、conda install -c ioamでインストール済みですので、なぜこのエラーが出るのかまったくわかりません。。。
55
+
56
+ https://ioam.github.io/parambokeh/user_guide/View_Parameters.html

1

matplotlib(seaborn)であることを明記しました。

2018/06/28 16:37

投稿

H.K2
H.K2

スコア88

title CHANGED
File without changes
body CHANGED
@@ -20,7 +20,7 @@
20
20
  9 50 0 100
21
21
 
22
22
  【やってみたこと】
23
- matplotlibでは、下記のように書くことで一応はこひげ図はかけたのですが、
23
+ matplotlib(seaborn)では、下記のように書くことで一応はこひげ図はかけたのですが、
24
24
  ボタンを押すと一回描画のみになってしまい、ボタンが消えてしまいます。
25
25
  ```python3
26
26
  df_boxdraw = pd.read_excel("サンプル.xlsx")