如何在python中绘出多y轴分组条形图
我需要绘制一个带有两个y轴和一个x轴的分组条形图。 如果在matplotlib中绘制,则绘图如下所示 我想通过python详细描述它,但我找不到解决方案。两年前似乎有一个类似的问题 https://stackoverflow.com/questions/29046057/plotly-grouped-bar-chart-with-multiple-axes 但当我尝试做类似的事情时,它没有起作用 以下是我测试的代码片段:如何在python中绘出多y轴分组条形图,python,bar-chart,plotly,multiple-axes,Python,Bar Chart,Plotly,Multiple Axes,我需要绘制一个带有两个y轴和一个x轴的分组条形图。 如果在matplotlib中绘制,则绘图如下所示 我想通过python详细描述它,但我找不到解决方案。两年前似乎有一个类似的问题 https://stackoverflow.com/questions/29046057/plotly-grouped-bar-chart-with-multiple-axes 但当我尝试做类似的事情时,它没有起作用 以下是我测试的代码片段: import plotly import plotly.graph_ob
import plotly
import plotly.graph_objs as go
import numpy as np
import pandas as pd
from io import StringIO
s = StringIO(""" amount price
A 40929 4066443
B 93904 9611272
C 188349 19360005
D 248438 24335536
E 205622 18888604
F 140173 12580900
G 76243 6751731
H 36859 3418329
I 29304 2758928
J 39768 3201269
K 30350 2867059""")
df = pd.read_csv(s, index_col=0, delimiter=' ', skipinitialspace=True)
plotly.offline.plot({
"data": [go.Bar(x=df.index, y=df.price, name="price"),
go.Bar(x=df.index, y=df.amount, name="amount", yaxis='y2'),
],
"layout": go.Layout(title="Amount and price",
yaxis=dict(
title='price',
autorange = True,
range = [0, max(df.price)],
),
yaxis2=dict(
title='amount',
autorange = True,
range = [0, max(df.amount)],
overlaying='y',
side='right'
),
barmode='group',
autosize=True),
})
请注意,我提供了barmode='group',但这不起作用。使用
辅助功能
:
df.plot.bar(secondary_y=['price'])
输出:
谢谢您的回复。但我想用Plotly而不是matplotlib来完成。