import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# create example dataset
dates = pd.date_range('20220101', periods=6, freq='M')
data1 = np.array([10, 20, 30, 40, 50, 60])
data2 = np.array([5, 10, 15, 20, 25, 30])
df = pd.DataFrame({'data1': data1, 'data2': data2}, index=dates)
# plot the bar chart
fig, ax1 = plt.subplots()
# plot the first set of bars
ax1.bar(df.index, df['data1'], width=20, color='blue', alpha=0.5, label='data1')
# set the y-label for the first set of bars
ax1.set_ylabel('data1', color='blue')
# set the tick labels for the x-axis
ax1.set_xticklabels(df.index.strftime('%Y-%m'), rotation=45, ha='right')
# set the tick labels for the y-axis of the first set of bars
ax1.tick_params(axis='y', labelcolor='blue')
# plot the second set of bars
ax2 = ax1.twinx()
ax2.bar(df.index, df['data2'], width=20, color='red', alpha=0.5, label='data2')
# set the y-label for the second set of bars
ax2.set_ylabel('data2', color='red')
# set the tick labels for the y-axis of the second set of bars
ax2.tick_params(axis='y', labelcolor='red')
# add legend
lines, labels = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax2.legend(lines + lines2, labels + labels2, loc='best')
# title the chart
plt.title('Barplot with twinx and two bars per month')
# show the chart
plt.show()
得到的中文效果如下所示: ![image.png](https://cdn.nlark.com/yuque/0/2021/png/17565574/162921
下一篇:Barrating不是一个函数