1
0

advanced_shapes.py 1.9 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 taipy.gui import Gui
  17. # Function to plot: x^3/3-x
  18. def f(x):
  19. return x * x * x / 3 - x
  20. # x values: [-2.2, ..., 2.2]
  21. x = [(x - 10) / 4.5 for x in range(0, 21)]
  22. data = {
  23. "x": x,
  24. # y: [f(-2.2), ..., f(2.2)]
  25. "y": [f(x) for x in x],
  26. }
  27. shape_size = 0.1
  28. layout = {
  29. "shapes": [
  30. # Shape for local maximum (x = -1)
  31. {
  32. "x0": -1 - shape_size,
  33. "y0": f(-1) - 2 * shape_size,
  34. "x1": -1 + shape_size,
  35. "y1": f(-1) + 2 * shape_size,
  36. "fillcolor": "green",
  37. "opacity": 0.5,
  38. },
  39. # Shape for local minimum (x = 1)
  40. {
  41. "x0": 1 - shape_size,
  42. "y0": f(1) - 2 * shape_size,
  43. "x1": 1 + shape_size,
  44. "y1": f(1) + 2 * shape_size,
  45. "fillcolor": "red",
  46. "opacity": 0.5,
  47. },
  48. ]
  49. }
  50. page = """
  51. <|{data}|chart|layout={layout}|>
  52. """
  53. if __name__ == "__main__":
  54. Gui(page).run(title="Chart - Advanced - Shapes")