python - 条形图(主要)然后折线图(次要)工作正常,但如果我改变代码中的序列则不起作用
问题描述
我需要将这两个图放在一起,但是当我使用条形图(主要)然后使用折线图(次要)时,它可以正常工作。如果我改变关于情节的代码行中的顺序,它就不起作用。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
flatui1 = ["#0C6514", "#18AB25"]
flatui2 = ["#0E1D56", "#18AB25"]
colors = sns.color_palette(flatui1)
cmap1 = LinearSegmentedColormap.from_list("my_colormap", colors)
colors = sns.color_palette(flatui2)
cmap2 = LinearSegmentedColormap.from_list("my_colormap", colors)
sns.set_style(style='whitegrid')
m1_t = pd.DataFrame({
"A":[0.21,0.05,1.22,0.41,1.28,1.15,0.91,0.63,0.38,1.18],
"B":[13.33,18,23.69,21.46,35.31,16,20.11,15.87,20.53,17.71],
"C":[5.71,2,23.44,9.02,35.39,13.48,14.62,13.17,13.68,14.66]
})
# This two line sequence has the problem
m1_t['A'].plot(kind='bar',colormap=cmap1)
m1_t[['B','C']].plot(kind='line',secondary_y=True,colormap=cmap2)
ax = plt.gca()
ax.grid(True)
ax.set_axisbelow(True)
ax.set_xticklabels(('P0', 'P1','P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9'))
plt.savefig('Comparison',dpi=300)
plt.show()
解决方案
以下用于两轴图的方法很简单,因为它保留索引并包含图例。
# This two line sequence has the problem
# m1_t['A'].plot(kind='bar',colormap=cmap1)
# m1_t[['B','C']].plot(kind='line',secondary_y=True,colormap=cmap2)
ax = m1_t.plot(y='A', kind='bar',colormap=cmap1)
ax1 = m1_t.plot(y=['B','C'], kind='line',secondary_y=True,colormap=cmap2, ax=ax)
推荐阅读
- triggers - 无法使用 Google Cloud 构建从 cloudbuild.yaml 运行 Sonarqube 分析
- python-3.x - 我正在使用 matplotlib,但出现导入错误
- amazon-web-services - 尝试设置 cron 日志,但没有保存在 Amazon linux2 上
- reactjs - 在 ReactJS 中的兄弟组件之间传递事件方法
- swift - 为什么在这些示例中 skipWhile 的行为不同?
- python - Pandas 数据框中的列
- java - 使用 apache POI 按值合并动态单元格
- java - 此代码如何打印相同的 PrimeFactors?
- python - 叶错误“地图”对象没有属性“geo_json”
- html - 引导网格在小屏幕尺寸下不起作用