【问题标题】:Barplot/line plot on same plot, but different axis and line plot in front of barplot同一图上的条形图/线图,但条形图前面的轴和线图不同
【发布时间】:2016-11-03 01:21:03
【问题描述】:

我正在使用 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
  • 条形图在辅助轴上,折线图在主轴上
  • 线图在条形图前面

【问题讨论】:

  • 我假设Dataframeplot() 函数也有zorder 关键字;您可以尝试在第二个示例中将其设置为较高的值。
  • 嗯...没想到。但它似乎仍然不起作用。我可以说它在两者都绘制在左侧 y 轴上时有效,但绘制在右侧 y 轴上的始终位于顶部。我真的更希望在右侧 y 轴上有条形图,这样我的老板就会看到他经常看到的东西。

标签: python pandas matplotlib


【解决方案1】:

你可以把线放在主轴上。

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

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 1970-01-01
    • 2015-09-01
    • 2020-05-06
    • 2019-10-27
    • 2021-05-12
    • 2016-04-24
    • 2013-11-25
    • 1970-01-01
    相关资源
    最近更新 更多