У меня есть 2 разные гистограммы с общей осью X и 2 разными осями Y. Я хочу объединить эти 2 графика с использованием оси X в один, используя python

#python #plotly #data-visualization #bar-chart

Вопрос:

Первое изображение

Код для первого изображения:

 import plotly.express as px
fig = px.bar(data, x='date', y='oi_diff_nifty15800CE',title='Oi chain of Nifty 15800CE')
fig.update_layout(width=650,height=500)
fig.show()
 

Второе Изображение

Код для второго изображения:

 import plotly.express as px
fig = px.bar(data, x='date', y='oi_diff_nifty15800PE',title='Oi chain of Nifty 15800PE') 
fig.update_layout(width=650,height=500)
fig.show()
 

Ответ №1:

  • вам действительно нужно указать, чего вы пытаетесь достичь помимо объединения
  • иметь смоделированные данные
  • здесь два подхода
    1. используется add_traces() для добавления следов от одной фигуры к другой фигуре
    2. просто измените px.bar() параметры, чтобы они создавались в виде одной фигуры
 import pandas as pd
import numpy as np
import plotly.express as px

# simulate data...
data = pd.DataFrame({"date": pd.date_range("21-jun-2021", periods=2),
        "oi_diff_nifty15800CE": np.random.randint(5, 15, 2),
        "oi_diff_nifty15800PE": np.random.randint(5, 15, 2),})

fig = px.bar(data, x="date", y="oi_diff_nifty15800CE", title="Oi chain of Nifty 15800CE")
# build from two different figures
fig.update_layout(width=650, height=300).add_traces(
    px.bar(data, x="date", y="oi_diff_nifty15800PE", title="Oi chain of Nifty 15800PE").data).show()

# just change params...
px.bar(data, x="date", y=["oi_diff_nifty15800PE","oi_diff_nifty15800CE"], barmode="group").update_layout(width=650, height=300).show()


 

введите описание изображения здесь

Комментарии:

1. Эй, спасибо, что ответили. На самом деле, я пытался создать цепочку опционов для опционов call и put данных о запасах, в которой я хотел объединить эти два графика и отобразить вызов и поместить график рядом.

2. Я не смог понять, о каких параметрах вы говорите, какие мне нужно изменить в px.bar() не могли бы вы уточнить, пожалуйста?

3. из вашего комментария я понял, что вы хотите определить y как список, а не строку. второй пример в коде