Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Plotly-将反向条形图添加到现有的普通条形图_Python_Plotly_Data Visualization - Fatal编程技术网

Python Plotly-将反向条形图添加到现有的普通条形图

Python Plotly-将反向条形图添加到现有的普通条形图,python,plotly,data-visualization,Python,Plotly,Data Visualization,这里有一个代码: import plotly import plotly.express as px x = data fig = px.line(x=fruits, y=[1,3,2], color=px.Constant("Line"), labels=dict(x="Fruit", y="Amount", color="Line")) fig.add_bar(x=fruits, y=

这里有一个代码:

import plotly
import plotly.express as px

x = data
fig = px.line(x=fruits, y=[1,3,2], color=px.Constant("Line"),
             labels=dict(x="Fruit", y="Amount", color="Line"))
fig.add_bar(x=fruits, y=[1,3,1], name="Red")
fig.add_bar(x=fruits, y=[2,1,3], name="Green").update_yaxes(autorange="reversed")
fig.show()
我想改变它,这样一个条形图会被正常放置,另一个会被画在第一个的正对面,倒挂着。我怎么做


谢谢大家!

可以创建次y轴并反转值的范围,将第一组条形映射到默认y轴,将第二组条形映射到次y轴。然后,为了确保条形图不重叠,可以为每组条形图插入空数据。另外,您没有指定
fruits
变量,因此我为您创建了一个任意列表。请随意修改我的代码,以满足您的目的

import plotly.graph_objects as go
from plotly.subplots import make_subplots

# x = data
fruits = ["apple","pear","orange"]
fig = make_subplots(specs=[[{"secondary_y": True}]])
# fig = px.line(x=fruits, y=[1,3,2], color=px.Constant("Line"),
#              labels=dict(x="Fruit", y="Amount", color="Line"))
fig.add_trace(
    go.Bar(
        x=fruits, 
        y=[1,3,1], 
        marker_color="Tomato",
        name="Red"
    )
)

# empty plot
fig.add_trace(
    go.Bar(
        x=fruits, 
        y=[0,0,0], 
        name=None,
        showlegend=False
    )
)

# empty values
fig.add_trace(
    go.Bar(
        x=fruits, 
        y=[0,0,0], 
        name=None,
        showlegend=False
    ),
    secondary_y=True
)

fig.add_trace(
    go.Bar(
        x=fruits, 
        y=[2,1,3], 
        marker_color="LightGreen",
        name="Green",
    ),
    secondary_y=True
)
fig['layout']['yaxis2']['autorange'] = "reversed"
fig.show()

您是否假设为堆叠图?是否可以将当前代码中反转的条形图的y值更改为负值<代码>y=[-2,-1,-3]