Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 00:17
    tomas16 opened #2389
  • Jun 14 19:22
    epassaro opened #2388
  • Jun 14 17:19
    ablythed ready_for_review #2385
  • Jun 14 17:08
    ablythed converted_to_draft #2385
  • Jun 14 16:52

    philippjfr on v0.12.0a16

    (compare)

  • Jun 14 16:52

    philippjfr on master

    Bump panel.js version (compare)

  • Jun 14 16:50

    philippjfr on bootstrap_sidebar

    (compare)

  • Jun 14 16:50

    philippjfr on master

    Fix sidebar scrolling in Boostr… (compare)

  • Jun 14 16:50
    philippjfr closed #2387
  • Jun 14 16:49
    philippjfr opened #2387
  • Jun 14 16:48

    philippjfr on bootstrap_sidebar

    Fix sidebar scrolling in Boostr… (compare)

  • Jun 14 16:14
    philippjfr closed #2217
  • Jun 14 16:14

    philippjfr on master

    Fix #2217 (#2333) * Fix #2217 … (compare)

  • Jun 14 16:14
    philippjfr closed #2333
  • Jun 14 16:10

    philippjfr on reactive_layout_fixes

    (compare)

  • Jun 14 16:10

    philippjfr on master

    Fix issues with ReactiveHTML la… (compare)

  • Jun 14 16:10
    philippjfr closed #2384
  • Jun 14 16:10
    philippjfr closed #629
  • Jun 14 16:10
    philippjfr commented #629
  • Jun 14 15:49
    philippjfr edited #495
Philipp Rudiger
@philippjfr
Was a total guess that pyiodide runs in a WebWorker but that actually seems to be the case. This also means it doesn't have access to the DOM though, which would have been nice.
Marc Skov Madsen
@MarcSkovMadsen
Damn. https://github.com/jtpio/jupyterlite/discussions/112. I need access to get and update Dom.
Marc Skov Madsen
@MarcSkovMadsen
You can open a web socket though. So i guess the process i to 1) open s web socket 2) inject som javaxcript in a cell that will open connection to web socket. 3) use web socket for communication. I guess thats sort of rebuilding Bokeh :-)
James A. Bednar
@jbednar
Yup!
Jacob Barhak
@Jacob-Barhak
A quick question - I am trying to transform HoloMap to GridSpace in Holoviews and I am getting a row of plots - I want to get a column of plots - is there some option I can control this with or should I just use Layout with .col(1) ?
Jacob Barhak
@Jacob-Barhak
never mind - I figured out I need layout
James A. Bednar
@jbednar
You can do holomap.layout().cols(1), if you are sure you only want a single column, or holomap.layout().opts(transpose=True).cols(10) if you want it to fill 10 rows column-wise instead of the default row-wise.
There's probably a transpose option to GridSpace as well, but I'm not sure about that.
Jacob Barhak
@Jacob-Barhak
Thanks James, if there is, I could not find any documentation - if it does exist it out I will write some docs for you. I look at the code and could not find it, so I eventually created a layout instead.
James A. Bednar
@jbednar
A layout or ndlayout makes more sense anyway unless the row, column axes are separate and meaningful (orthogonal). If they are meaningful, then the I assume the GridSpace can be constructed initially a different way to control which way the axes go (but have not tried it).
Jacob Barhak
@Jacob-Barhak
oh well. the problem was solved on my end, yet if there is a way, I will be happy to document it for you - I know how by now
Marc Skov Madsen
@MarcSkovMadsen
Congrats Panel with the 1200 stars
image.png
Philipp Rudiger
@philippjfr
Thanks, a lot of that is your contribution!
James A. Bednar
@jbednar
Yep, a big boost recently from whatever you did; it's gone up 20% since the beginning of May!
Bas Nijholt
@basnijholt
Is it possible to plot a 2D slice in a 3D canvas with the plotly extension? Something like https://plotly.com/python/visualizing-mri-volume-slices/
Marc Skov Madsen
@MarcSkovMadsen
Hi @basnijholt . Could you repost the question in the community discourse? (Could you not just use ghf plotly code and a Plotly Pane?)
Bas Nijholt
@basnijholt

Hi @MarcSkovMadsen, before posting I just want to assert whether it is possible at all because I only see a hv.Surface element and I believe there is no option to pass the surfacecolor attribute to plotly.

What do you mean with "ghf plotly code"?

James A. Bednar
@jbednar
There is a proposal in a holoviews issue for passing arbitrary options down to plotly, but I don't think that was implemented.
Marc Skov Madsen
@MarcSkovMadsen
Plotly 5.0 is coming. Don't know if changes anything for HoloViews or Panel. But something to note. https://community.plotly.com/t/plotly-py-5-0-is-coming-soon-try-the-release-candidate-today/53470
Jean-Luc Stevens
@jlstevens
might mean the holoviews plotly backend needs updating, but don't see too much to suggest API changes in the release notes so it might be ok
Marc Skov Madsen
@MarcSkovMadsen
wow pwang just mentioned datashader, holoviz and panel right after the conda installer in his key note talk. Later something about numba, dask etc.
James A. Bednar
@jbednar
Cool! I'm trying to catch up to AnacondaCon now.
epifanio
@epifanio
Hi, I am tring to develoip a little wms viewer I initially mixed bokeh and ipywidgets, but I am now convinced to move it to panel and pyviz - to start I am tring to follow this issue: holoviz/geoviews#481 to try to visualize WMS with geoviews but I got stuck on the way I should load a standard WMS
I made a comment on the issue, attemting to explain my problem
zeneofa
@zeneofa
bokeh_plot (48).png

Hi! I am trying to plot a multi-category boxwhisker plot with a scatter plot overlay. I am having some issues with getting this working. I am not sure how I should align the dimensions to get this working:

# example code
import math
import holoviews as hv
from holoviews import dim,opts

def changeOrderAndFont(plot,element):
    factors =  itertools.product(['F5','F4','F3','F2','F1'],['GroupA','GroupB'])
    plot.state.x_range.factors = [*factors]
    plot.handles['xaxis'].major_label_text_font_size = '12pt'
    plot.handles['xaxis'].major_label_orientation = math.pi/2
    plot.handles['xaxis'].group_text_font_size = '10pt'
    plot.handles['yaxis'].axis_label_text_font_size = '10pt'
    plot.handles['yaxis'].axis_label_text_font_style = 'normal'
    plot.handles['xaxis'].axis_label_text_font_style = 'normal'
values = np.random.normal(0,1,size=50)
strata = np.random.choice(['GroupA','GroupB'],size=50)
feature = np.random.choice(['F1','F2','F3','F4','F5'],size=50)
df = pd.DataFrame({'Strata':strata,'Feature':feature,'Values':values})

pp = hv.BoxWhisker(df,kdims=['Feature','Strata'],vdims=['Values']).opts(cmap='Category20',box_color='Strata',height=400,width=400,hooks=[changeOrderAndFont])
# ss = hv.Scatter(df,kdims=['Feature','Strata'],vdims=['Values','Strata']) #gives a warning about a single kdim, and an error on dimension alignment
# ss = hv.Scatter(df,kdims=['Feature'],vdims=['Values','Strata']) #gives an error on dimension alignment
# (pp*ss) # errors here
pp

Any help, suggestions, or direction would be appreciated.

zeneofa
@zeneofa
using holoviews version 1.14.1, bokeh extension (bokeh version 2.2.3)
oops just saw the header of the chat, will post this in the holoviews discourse site. sorry.
Marc Skov Madsen
@MarcSkovMadsen
No probs @zeneofa . See you in the community forum
I would like to test and communicate the awesome Jupyter Lab button that is now available in pyviz_comms. But if I go to Panel binder https://mybinder.org/v2/gh/holoviz/panel/master?urlpath=lab/tree/examples I don't see it. And I have version 2.0.2 of pyviz_comms installed.
Is there anything I need to do?
image.png
Marc Skov Madsen
@MarcSkovMadsen
It's the same locally. Does not appear. Even though I updated pyviz_comms and started JL.
image.png
Anar Z. Yusifov
@thoth291
Hi all. Could one of you help me to figure out how to force holoviews to use log_e with logy=True option - it's currently using log_10 in bokeh (if I'm not mistaken).
Philipp Rudiger
@philippjfr
@MarcSkovMadsen It's not yet merged
Marc Skov Madsen
@MarcSkovMadsen
Ahh. Ok. I got that impression before you joined the meeting.
James A. Bednar
@jbednar
@thoth291 , there may be a log_e option available, but if so I've never seen it.
Anar Z. Yusifov
@thoth291
@jbednar , it looks like it is hardcoded to be log_10, it would be great to have a guide on what hook do I need to add to turn it to log_e. I just literally don't know what to start from.
James A. Bednar
@jbednar
You can presumably transform your data however you like, then add a custom axis with ticks and labels showing the untransformed values, but that would take some work. I don't think there's a simple way to do it at the Bokeh level without changes to Bokeh itself. If you want to have that flexibility added at the Bokeh level, you'd have to have a good motivating example for why log_e or configurability of log base more generally is compelling in a particular case. Most people who use log axes are interested in the overall axis-squashing behavior, which seems independent of base, not the precise mapping of specific values.
Anar Z. Yusifov
@thoth291
Yeah, I understand. That is what I had in mind as a fallback mechanism. It's indeed depends on domain science. In data science workflows one deals with counts and similar things - that's why log_10 works just fine. But I'm currently in chemistry domain now - and they speak log_e almost exclusively (reaction rates and other probability related entities). So they are interested in log_e scales. I would say that Chemistry is a big domain, especially given some recent bio-related issues in the world... I also would not know how easy it would be to add configurable base to bokeh. And moreover, expose it through logy=True API of holoviews.
Marc Skov Madsen
@MarcSkovMadsen
Could you not just change the hard code base value from your code? Would it work?
James A. Bednar
@jbednar
Do you mean, monkeypatching Bokeh? That would be tough, as I believe the values are hardcoded at the JS side.
It would not be difficult to make it configurable in Bokeh and expose it in HoloViews. But you still do need to demonstrate why the log_e/log_10 difference matters, given that the axis is still labeled in un-transformed non-log units. How will a chemistry user even detect which one you used?
Anar Z. Yusifov
@thoth291
They did it somehow :-) And so I have to recode all my plots now (which is fine - since it's R&D - but it's still pain since it's in few notebooks and many cells).
James A. Bednar
@jbednar
If you could manually make a plot and show the difference between the two logs, then that seems like a good enough demonstration to justify adding configurability over the log. Note that we recently (2020) generalized axis mapping in Bokeh to handle Datashader's nonlinear spacing, and it may already be feasible to support arbitrary transforms in a convenient way. Just make your demonstration on a Bokeh issue and ask Mateusz (a) how he'd do it right now, and (b) how hard it would be to make the log function be configurable as a simple option.
Anar Z. Yusifov
@thoth291
Ok. I'll setup something soon. Thank you!