heatmap-unequal-cell-sizes.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # Copyright 2021-2024 Avaiga Private Limited
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
  4. # the License. You may obtain a copy of the License at
  5. #
  6. # http://www.apache.org/licenses/LICENSE-2.0
  7. #
  8. # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
  9. # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
  10. # specific language governing permissions and limitations under the License.
  11. # -----------------------------------------------------------------------------------------
  12. # To execute this script, make sure that the taipy-gui package is installed in your
  13. # Python environment and run:
  14. # python <script>
  15. # -----------------------------------------------------------------------------------------
  16. from itertools import accumulate
  17. import numpy as np
  18. from taipy.gui import Gui
  19. if __name__ == "__main__":
  20. grid_size = 10
  21. data = [
  22. {
  23. # z is set to:
  24. # - 0 if row+col is a multiple of 4
  25. # - 1 if row+col is a multiple of 2
  26. # - 0.5 otherwise
  27. "z": [
  28. [0.0 if (row + col) % 4 == 0 else 1 if (row + col) % 2 == 0 else 0.5 for col in range(grid_size)]
  29. for row in range(grid_size)
  30. ]
  31. },
  32. {
  33. # A series of coordinates, growing exponentially
  34. "x": [0] + list(accumulate(np.logspace(0, 1, grid_size))),
  35. # A series of coordinates, shrinking exponentially
  36. "y": [0] + list(accumulate(np.logspace(1, 0, grid_size))),
  37. },
  38. ]
  39. # Axis template used in the layout object
  40. axis_template = {
  41. # Don't show any line or tick or label
  42. "showgrid": False,
  43. "zeroline": False,
  44. "ticks": "",
  45. "showticklabels": False,
  46. "visible": False,
  47. }
  48. layout = {"xaxis": axis_template, "yaxis": axis_template}
  49. options = {
  50. # Remove the color scale display
  51. "showscale": False
  52. }
  53. page = """
  54. ## Heatmap - Unequal block sizes
  55. <|{data}|chart|type=heatmap|z=0/z|x=1/x|y=1/y|layout={layout}|options={options}|>
  56. """
  57. Gui(page).run()