HoloViz Survey Results

survey
Results from first HoloViz user survey
Author

Demetris Roumis

Published

July 14, 2023

Welcome! HoloViz offers a suite of open-source tools for comprehensive data visualization in a web browser, including high-level interfaces for quick construction and precise control to facilitate both exploratory analysis and complex dashboard building.

We recently conducted our first-ever user survey, and thanks to the 130+ respondents, we gained valuable insights into how users interact with HoloViz tools and where our documentation could be improved. Since then, we’ve been busy implementing your suggestions; we’ve initiated a documentation structure revamp, provided a path to fully interactive documentation, and taken steps to enhance our community, including hosting documentation sprints, establishing a formal governance structure, joining NumFOCUS, launching a Discord server, and conducting a data app contest.

Our future plans focus on two main areas:

  1. Enhancing Reference Materials: We plan to create more comprehensive reference materials, including API references, detailed parameter descriptions, and complete docstrings.

  2. Assisting with Package Selection: We aim to guide new users more effectively in choosing the right HoloViz package, by providing clearer guidance on package selection and unifying the reactive API across HoloViz.

We’re excited to share this summary of the survey results, our progress, and future plans.

Contents:

Select Survey Results

Users and their usage of HoloViz

Here are some of the key highlights that we learned about a slice of our user community.

User field and role

We asked: “What field do you work in?” and “What title best characterizes your role when using HoloViz tools?”.

HoloViz tools are clearly used across a wide range of domains, including academia, industry, public, and private sectors. The diversity of applications shows the power and adaptability of HoloViz to support data visualization and analysis needs across many areas of work and study. We hope to further broaden its utility, as cross-pollination of ideas and use cases across fields serves to strengthen our ecosystem and drive open-source innovations.

Quick note:

Many of you wrote custom responses for several of the questions. We have reviewed and incorporated them into our summaries and responses, but have either collapsed them into ‘other’ or omitted them in these summary plots so that the displays don’t blow up from a flood of unique categories.

Additionally, approximately 60% of our respondents are “scientists” specializing in either data, research, or applied fields, while another significant portion comprises “engineers” from various domains such as software and machine learning. Although the number of student responses in this survey was limited, we recognize the importance of actively engaging this demographic and will try to improve their turnout in the future.

Duration of HoloViz use

We asked: “For how long have you used HoloViz tools?”.

We were hoping to have a balance of responses from both our experienced users and newer users with fresh perspectives. Luckily, respondents were roughly split half and half on whether they have used HoloViz tools for over a year. The range of experience levels provides a valuable mix of feedback on both the cultivated expertise that comes with long-term use, as well as opportunities to improve the user experience for those just beginning their journey with HoloViz.

First vs. most used HoloViz library

We asked: “What was the first HoloViz Tool that you used?” and “Which specific HoloViz package have you used the most?”.

Many of you started your HoloViz journey working with HoloViews (one of the original HoloViz packages), but are now Panel aficionados. Panel has been surging in popularity, with people from very different backgrounds now creating cool web apps. We are thinking that Panel and hvPlot are probably the appropriate entry points into HoloViz for new users looking to either do dashboarding or data exploration, respectively (more on this thought later).

hvPlot vs. HoloViews

We asked: “If you have used both hvPlot and HoloViews, which do you prefer for data exploration?”.

Below, we separate the results into respondents that have either used hvPlot or HoloViews the most, as asked in a prior question. Among users who mostly use hvPlot (left), a significant majority of about 92% expressed a preference for hvPlot for data exploration, indicating a strong correlation between usage and preference. Interestingly, among users who mostly use HoloViews (right), the majority (about 63%) still preferred HoloViews, but the margin was narrower. This could suggest that while users tend to prefer the tool they use most often, hvPlot has a notable appeal even among those who primarily use HoloViews.”

HoloViz dev environment

We asked: “What notebook environment do you use when working with HoloViz tools?” and “Where do you write Python scripts when working with HoloViz tools?”.

Understanding the environments in which our users operate is crucial for optimizing the HoloViz toolset. So, we sought to identify the most common notebook and Python scripting environments among our user base. Jupyter Lab emerged as the favored notebook environment, used by 66% of respondents, suggesting its capabilities align well with HoloViz’s strengths. Meanwhile, over 62% of respondents prefer VS Code for scripting, likely reflecting its robust Python development support.

Common data and other packages

We asked: “What data library/structure do you commonly use with HoloViz?” and “What other packages do you use alongside HoloViz tools?”.

Unsurprisingly, Pandas and NumPy are the most commonly used data libraries with HoloViz, reflecting their foundational role in data science. However, Xarray also shows substantial usage, underscoring its relevance for multi-dimensional array operations. The wide range of other packages used alongside HoloViz, including Matplotlib, Plotly, and scikit-learn, illustrates the versatility of HoloViz tools and their integration within diverse workflows. These insights help us enhance HoloViz’s compatibility with popular libraries and tools, optimizing user experience.

Sharing your work

We asked: “How do you share your HoloViz work with others?” and “If you share live, running Python apps, what frameworks and platforms do you use?”.

Understanding how users disseminate their HoloViz work is key to enhancing its collaborative capabilities. Most users tend to share their entire notebooks, highlighting the notebook’s value as a comprehensive record of data analysis that combines code, visualizations, and narrative. Exported HTML and internally hosted apps also emerged as common sharing methods, reflecting the need for static and interactive data presentation formats respectively.

When it comes to sharing live, running Python apps, Flask emerged as the top choice, likely due to its simplicity and flexibility for web app development. However, a diverse range of other platforms like Amazon Web Services, SSH, and Nginx are also employed, indicating the varied requirements of our users in terms of hosting and deployment. These insights inform our efforts to ensure HoloViz tools are compatible and easy to use across various sharing and deployment platforms.

Type hints

We asked: “When using Python packages, do you benefit if a package has used type hints and declarations in their code?”.

As we transition from understanding how users interact with and disseminate their HoloViz work, we also sought insights into what enhances their experience with Python packages more broadly, especially relating to different forms of documentation. A clear majority, over 70%, affirmed that type hints in a package’s code are beneficial. This feature, which aids in understanding the expected input and output types of functions, can increase code readability, assist in debugging, and improve IDE tooling support. The response from our users highlights the value of this coding practice, and as a result, we will are discussing how best to add type hints into our code base.

About HoloViz docs

We asked: “What development activities would help you most right now?”.

One of the primary purposes of this first survey was to help prioritize much-needed updates to our documentation, with a particular focus on improving the new user experience. And clearly, you agree that documentation is the highest priority:

Docs rating

We asked: “How was your documentation experience when you were a new HoloViz user?”.

Users rated their initial documentation experience with HoloViz on a scale of 1 to 5. The majority had a neutral (35%) or slightly negative (29%) experience, with a quarter of respondents reporting a positive experience (25%). Only a small percentage found their experience to be excellent or unsatisfactory. These results highlight areas for improvement in our documentation to ensure a smoother onboarding experience for new HoloViz users.

Overall docs priorities

One of the most important docs questions that we asked was overall “What potential changes to our documentation do you think would most improve the new user experience?”. For simplicity, below are the results for the pre-defined answers (although there were many write-ins that we are taking action on).

The most favored suggestion, with nearly 59% support, was to improve the reference API material with examples, signifying the need for clear, actionable examples in API documentation. About half of the respondents also sought examples of when and how to switch between different HoloViz tools or a guide on choosing the most appropriate package to work with, indicating a demand for more guidance on using the right tool for a particular task.

Package-specific docs type priorities

About each respondent’s most used package, we asked “For [package], rank the type of documentation that we should focus on improving to help you most right now?”. Below are the results for the three most popular HoloViz packages.

The results indicate diverse needs across these packages. For Panel and hvPlot, ‘How-to’ recipes for specific tasks emerged as a priority (see Progress and achievements). These practical guides can help users navigate specific use-cases and tasks, reinforcing understanding through application. This suggests that users are seeking more actionable guidance on using these packages to address specific challenges or scenarios.

On the other hand, HoloViews users found ‘Explanation of concepts and design’ to be the most beneficial. This implies that users find the conceptual underpinnings and design principles of HoloViews critical for the effective use of the package. As we revamp our documentation, these user priorities will guide our focus, ensuring we deliver information that is both useful and relevant to our users.

Package-specific docs topic priorities

In addition to understanding the types of documentation our users find most helpful, we were also interested in identifying specific topics within those documentation types where users saw room for improvement. To this end, we again segmented respondents based on their most-used package - Panel, hvPlot, or HoloViews - and asked: “For the package that you selected, improvement to what documentation topics would you most benefit from?”.

Panel users expressed a need for better documentation on app responsivity and building custom components. These topics are central to creating and managing effective Panel applications, and users’ responses indicate the need for clearer or more comprehensive guidance in these areas.

In contrast, hvPlot and HoloViews users were focused on different topics. A clear need for more guidance on interactivity emerged, suggesting users are keen to leverage the interactive capabilities of these packages but may find the current documentation lacking. In addition, users expressed a desire for better integration with other HoloViz packages, underscoring the importance of cohesive, cross-package documentation. The request for improved guidance on applying customizations points to users’ desire for more personalized, adaptable visualizations.

HoloViz tutorial

We asked: “Have you checked out the tutorial on HoloViz.org? If so, in what forms have you experienced it?”.

When asked about their engagement with the HoloViz tutorial, most users reported reading it directly on the website, signifying the convenience and immediacy of this method. However, many also downloaded the tutorial notebooks for a more hands-on, interactive learning experience. Guided talks through the tutorial were another popular choice, underscoring the importance of providing diverse learning formats.

Despite these varied approaches, fewer users utilized cloud infrastructure for tutorial access, suggesting that this option might need more visibility or user-friendly features. A small fraction were unaware of the tutorial, highlighting an opportunity to improve communication and resource visibility.

Actions taken and planned in response to the survey

Progress and achievements

Documentation structure revamp

A key point of feedback has been the lack of a user-centric structure in our documentation. Historically, our docs have leaned heavily on comprehensive user guides for each topic, making it challenging for users to locate necessary information and for contributors to identify and fill gaps. In response, we’ve initiated a transition, beginning with Panel’s documentation, to adopt a structure inspired by the Diataxis framework. Diataxis prioritizes understanding user needs and organizes documentation around distinct types such as how-to guides, references, and explanations. Our progress so far includes migrating user guides to how-to guides, adding an Explanation section, and overhauling the App Gallery:

In-Browser interactive examples

The survey highlighted a desire for fully interactive documentation. We’ve taken strides to ensure that most of Panel’s documentation can be interactively executed directly in the web browser. This has already elicited positive feedback, with other software teams showing interest in adopting this approach:

  • Use pyodide rendering throughout documentation and add JupyterLite links (#4751)

Community building

Aligned with survey feedback for further creation and fostering of the HoloViz community, we’ve taken tangible steps to enhance our community. Here’s what we’ve accomplished since the survey:

  • Hosted sprints at PyData and EuroPython, focusing on documentation.
  • Established a formal governance structure for HoloViz, including a code of conduct and a steering committee.
  • Obtained fiscal sponsorship from NumFOCUS, further aligning HoloViz with a broader community of open-source projects and opening opportunities for increased collaboration.
  • Shifted our user and contributor chats to Discord, enhancing community interaction and transparency.
  • Conducted a Panel app contest offering substantial prizes.

Future plans

Enhancing reference materials

Improving the reference material is clearly important to users regardless of experience level. Many of you wrote in additional comments related to this theme. For instance: - “It would be great if mentions of various functions, etc in the examples were hyperlinked to an API reference (and the API reference had examples).” - “extensive description of all supported parameters and expected parameter options” - “…Stories are great, but without API docs, I can’t figure out what Holoviews is actually doing.” - “[for hvPlot] since there isn’t a searchable API reference, it’s difficult to figure out how to use them at all or if I should be trying to use them.” - “…links to reference pages [from other parts of the documentation]” - “hv.help() should tell you [what to check in the external plotting library documentation]” - “…make more complete docstrings. It’s usually tough to understand what options are available.” - “…clear overview of all the possible settings…” - “Add type hints and stubs to allow static check and autocomplete. That is the most lacking feature of param.”

Planned actions for reference materials:

We aim to significantly improve our reference materials by: - Creating API reference pages for all HoloViz libraries - Including links from elsewhere in the docs to the reference material - Enhancing hv.help() with better outputs, sorting, and parameter support: - Add output to reference pages (e.g. HoloViews #5423) - Show the docstring (e.g. HoloViews #5421, #4076) - Sort the output alphabetically (e.g. HoloViews #5420) - Clarify the distinction of different tools args (e.g. HoloViews #4636, #5231) - Ensure the parameters are supported (e.g. HoloViews #2887) - Align and organize reference guides (see proposal on Panel #4305) - Standardize and complete docstrings: - Document input data format (e.g. HoloViews #3632, #2925, #2116) - Write consistent docstrings (e.g. HoloViews #2322, nbsite #67 - Add type hints to code - Create a friendly display for Param.Parameterized objects (e.g. Param #425) - Fuzzy matching of not-yet-supported backend-specific options (e.g. HoloViews #4463

Assisting with package selection

There’s notable confusion about choosing the right HoloViz package for a task. Respondents found it difficult to understand the boundaries and overlaps between the packages and to decide which was best for their application:

  • “The other issue that I know I share with many of my colleagues is the confusion of the HoloViz package separations. For a beginner it is really hard to grasp where the boundaries are and what the individual package is doing in particular, especially because they can have all different sorts of backends (matplotlib, bokeh, pyplot) and seem to have some overlap (holoviews/geoviews).”
  • “in general I found it difficult to easily decide which of the many packages was best for my application”
  • “…I always struggle with the many different options of doing something…”
  • “The number of subproject (panel, colorcet…) is somewhat confusing.”
  • “Hard to learn … when to switch to holoviews from hvplot…”
Planned actions for package selection:
  • Guide new users to HoloViz.org from our individual library sites to offer a comprehensive view of the ecosystem. Many of our standalone library sites (such as datashader.org) do not sufficiently highlight their part in the wider HoloViz ecosystem or suggest alternative packages that could be more suitable. We aim to address this by prominently signposting HoloViz.org on each library homepage, directing new users to a hub where they can receive guidance on selecting the most appropriate package.

  • Overhaul the ‘Getting Started’ section on HoloViz.org to provide clearer guidance on package selection. We understand that our current resources may not adequately guide new users to the most suitable package for their use case. Our plan is to enhance the ‘Getting Started’ experience by recommending most users to begin with either hvPlot or Panel. These two packages collectively offer access to the majority of HoloViz tools and effectively cater to users either in data exploration mode (hvPlot) or app-building stage (Panel). We also aim to clarify the use-case boundaries between packages with overlapping functionality, like hvPlot and HoloViews, to alleviate confusion about initial package selection and subsequent transitioning between them.

  • Unify the reactive API across HoloViz to simplify the creation of UI components and data pipelines. We recognize that the current diversity and inconsistency in our approach to building reactive UI components across different packages can complicate package selection and transition between methods. To address this, we’re working on unifying HoloViz’s reactive programming approach. This will make it more intuitive and straightforward to construct reactive data pipelines and UI components across the ecosystem, thereby clarifying the appropriate tool selection for specific workflows. Follow the discussion on Holoviz #370.

Closing

As an open-source project, HoloViz thrives on contributions from our diverse community of users. Our goal is not just to develop powerful data visualization tools, but also to build a strong, active community of contributors. If any of the future plans resonate with you, we encourage you to get involved. You can reach out in our #new-contributors channel on Discord or engage in a relevant issue on GitHub. Many of the improvements we’ve made so far have been thanks to contributions from both new and existing community members, who we always acknowledge in our release posts - as can be seen on the Announcements on our Discourse forum. We look forward to your participation in shaping the future of HoloViz.

In closing, we want to express our profound gratitude to all who participated in our first-ever survey. Your time, feedback, and insights are invaluable in guiding our development and refining our focus. Thank you for your continued support and engagement with HoloViz.

Back to top