advanced-shapes.py 2.0 KB

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