Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plot with 2 y-axis with custom tick labels on both #2253

Closed
gromanmartin opened this issue Jan 12, 2024 · 0 comments · Fixed by #2254
Closed

Plot with 2 y-axis with custom tick labels on both #2253

gromanmartin opened this issue Jan 12, 2024 · 0 comments · Fixed by #2254
Labels
state: pending not addressed yet type: bug bug

Comments

@gromanmartin
Copy link

Version of Dear PyGui

Version: 1.10.1
Operating System: Ubuntu 22.04

My Issue/Question

I am trying to create a weather forecast plot with line graph representing temperature and bar graph representing rain values. They share the same x-axis, but I would like the y-axis for temperature to be on the left and show ticks from -30 to 30 and for the y-axis for rain values to be on the right side and be from 0 to 50.
I wanted both axis to share the 0 line, just have different scaling. My idea was to just use set_axis_ticks() , however I cant seem to adjust the ticks on the right side, since both of the set_axis_ticks lines adjust only the left one. On Discord I have been told this is will require a fix.

To Reproduce

Steps to reproduce the behavior:

Run the code below and try to change the second call of set_axis_ticks() values

Expected behavior

set_axis_ticks() edits the ticks for the axis passed as a argument.

Screenshots/Video

Standalone, minimal, complete and verifiable example

import dearpygui.dearpygui as dpg

dpg.create_context()
dpg.create_viewport(title='Custom Title', width=800, height=580, decorated=True)

dpg.setup_dearpygui()
dpg.show_viewport()

with dpg.window(tag="Primary Window", no_scrollbar=True):
    with dpg.plot(label="Today", width=int(800*2/3), height=400):
        x_range = [i for i in range(0, 25)]
        x_ticks = tuple((f"{x}", x) for x in [3, 6, 9, 12, 15, 18, 21])
        dpg.add_plot_axis(dpg.mvXAxis, tag="x_axis_today")
        dpg.set_axis_limits("x_axis_today", 0, 24)
        dpg.set_axis_ticks("x_axis_today", x_ticks)
        
        dpg.add_plot_axis(dpg.mvYAxis, tag="y_axis_today")
        dpg.set_axis_limits("y_axis_today", -25, 25)
        dpg.set_axis_ticks("y_axis_today", (("-20", -20), ("20", 20)))    

        dpg.add_plot_axis(dpg.mvYAxis, tag="y_axis_rain_today")                                 
        dpg.set_axis_limits("y_axis_rain_today", -30, 30)
        dpg.set_axis_ticks("y_axis_rain_today", (("0", 0), ("10", 10)))

        dpg.add_line_series(x_range, 20*[1] + [ -5, -5, -5, 5, 5], parent="y_axis_today")
        dpg.add_bar_series(x_range, [10, 3, 4, 4, 3] + 20*[0], parent="y_axis_rain_today")


while dpg.is_dearpygui_running():
    dpg.render_dearpygui_frame()
dpg.destroy_context()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
state: pending not addressed yet type: bug bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant