我需要绘制一个带有两个y轴和一个x轴的分组条形图。 如果在matplotlib中绘制,则情节如下所示
我想通过python情节,但我找不到解决方案。两年前似乎有一个类似的问题
https://stackoverflow.com/questions/29046057/plotly-grouped-bar-chart-with-multiple-axes
但是当我尝试这样做时却没有用。
以下是我测试过的代码段:
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'但这没有生效。