heatmap-unequal-cell-sizes.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. grid_size = 10
  20. data = [
  21. {
  22. # z is set to:
  23. # - 0 if row+col is a multiple of 4
  24. # - 1 if row+col is a multiple of 2
  25. # - 0.5 otherwise
  26. "z": [
  27. [0.0 if (row + col) % 4 == 0 else 1 if (row + col) % 2 == 0 else 0.5 for col in range(grid_size)]
  28. for row in range(grid_size)
  29. ]
  30. },
  31. {
  32. # A series of coordinates, growing exponentially
  33. "x": [0] + list(accumulate(np.logspace(0, 1, grid_size))),
  34. # A series of coordinates, shrinking exponentially
  35. "y": [0] + list(accumulate(np.logspace(1, 0, grid_size))),
  36. },
  37. ]
  38. # Axis template used in the layout object
  39. axis_template = {
  40. # Don't show any line or tick or label
  41. "showgrid": False,
  42. "zeroline": False,
  43. "ticks": "",
  44. "showticklabels": False,
  45. "visible": False,
  46. }
  47. layout = {"xaxis": axis_template, "yaxis": axis_template}
  48. options = {
  49. # Remove the color scale display
  50. "showscale": False
  51. }
  52. page = """
  53. <|{data}|chart|type=heatmap|z=0/z|x=1/x|y=1/y|layout={layout}|options={options}|>
  54. """
  55. if __name__ == "__main__":
  56. Gui(page).run(title="Chart - Heatmap - Unequal block sizes")