同一图上的条形图/折线图,但在条形图前面的轴和折线图不同

Cha*_*les 5 python matplotlib pandas

我正在使用熊猫来绘制一些数据。

如果我画这个:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [100, 200, 150, 175],
                   'b': [430, 30, 20, 10]})
fig, ax1 = plt.subplots(figsize=(15, 10))
df['b'].plot(kind='bar', color='y')
df['a'].plot(kind='line', marker='d')
Run Code Online (Sandbox Code Playgroud)

一切都很好。

好图

如果在辅助轴上绘制条形图轴,则条形图将位于折线图的前面,这样会妨碍查看线条。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [100, 200, 150, 175],
                   'b': [430, 30, 20, 10]})
fig, ax1 = plt.subplots(figsize=(15, 10))
df['b'].plot(kind='bar', color='y', secondary_y=True)
df['a'].plot(kind='line', marker='d')
Run Code Online (Sandbox Code Playgroud)

悲伤图

如何在以下位置制作条形图/线形图...

  • 使用pandas / matplotlib
  • 条形图在辅助轴上,折线图在主轴上
  • 线图位于条形图的前面

piR*_*red 5

你可以把线放在主轴上。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [100, 200, 150, 175],
                   'b': [430, 30, 20, 10]})
fig, ax1 = plt.subplots(figsize=(15, 10))
df['b'].plot(kind='bar', color='y')
df['a'].plot(kind='line', marker='d', secondary_y=True)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

或者,创建两个轴ax1ax2使用twinx().

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [100, 200, 150, 175],
                   'b': [430, 30, 20, 10]})
fig, ax1 = plt.subplots(figsize=(15, 10))
ax2 = ax1.twinx()
df['b'].plot(kind='bar', color='y', ax=ax1)
df['a'].plot(kind='line', marker='d', ax=ax2)
ax1.yaxis.tick_right()
ax2.yaxis.tick_left()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明