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

0wi1tuuw  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(108)

我在用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')

一切都很顺利。

如果我在第二轴上绘制条形轴,条形图将在线条图的前面,阻碍线条的观察,就像这样。

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')

如何制作条形图/折线图.

  • 使用pandas/matplotlib
  • 条形图在次轴上,折线图在主轴上
  • 线图在条形图的前面
ffscu2ro

ffscu2ro1#

你可以在主轴上画一条线

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)

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

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()

相关问题