Matplotlib 如何设置pandas绘图中图例的位置

Matplotlib 如何设置pandas绘图中图例的位置

在使用pandas绘图时,经常需要添加图例以增强可读性。pandas内置了matplotlib作为其绘图底层库,因此可以利用matplotlib的相关函数来设置图例的位置。

阅读更多:Matplotlib 教程

绘制pandas图表

在绘制pandas图表之前,我们先来了解一下pandas的几种常见绘图方式。这些绘图方式大多以DataFrame的每一列为一组数据,并根据索引绘制出相应的图形。

折线图

折线图适用于连续变化的数据,其中每一列为一条折线。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [5, 4, 3, 2]})
plt.plot(df)
plt.show()

柱状图

柱状图适用于离散数据,其中每一列为一组柱状。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [5, 4, 3, 2]})
df.plot(kind='bar')
plt.show()

散点图

散点图适用于多列数据之间的关系,其中每一组数据为一对点。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [5, 4, 3, 2]})
plt.scatter(df['a'], df['b'])
plt.show()

设置图例位置

在绘制图表时,通过调用matplotlib库的相关函数可以设置图例的位置。

根据坐标系位置设置图例位置

图例位置可以根据坐标系的上下左右四个位置进行设置。

  • loc='upper right':右上角
  • loc='upper left':左上角
  • loc='lower right':右下角
  • loc='lower left':左下角
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [5, 4, 3, 2]})
plt.plot(df)
plt.legend(loc='upper right')
plt.show()
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [5, 4, 3, 2]})
plt.plot(df)
plt.legend(loc='upper left')
plt.show()
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [5, 4, 3, 2]})
plt.plot(df)
plt.legend(loc='lower right')
plt.show()
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [5, 4, 3, 2]})
plt.plot(df)
plt.legend(loc='lower left')
plt.show()

根据图表大小设置图例位置

当图表的大小变化时,我们还可以通过计算图例的位置来保证其相对位置不变。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a: [1, 2, 3, 4], 'b': [5, 4, 3, 2]})
fig, ax = plt.subplots()
ax.plot(df)
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.show()
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [5, 4, 3, 2]})
fig, ax = plt.subplots()
ax.plot(df)
ax.legend(loc='center right', bbox_to_anchor=(0, 0.5))
plt.show()
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [5, 4, 3, 2]})
fig, ax = plt.subplots()
ax.plot(df)
ax.legend(loc='upper center', bbox_to_anchor=(0.5, 1.1), ncol=2)
plt.show()
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'a': [1, 2, 3, 4], 'b': [5, 4, 3, 2]})
fig, ax = plt.subplots()
ax.plot(df)
ax.legend(loc='lower center', bbox_to_anchor=(0.5, -0.1), ncol=2)
plt.show()

总结

matplotlib提供了多种设置图例位置的方法,可以根据坐标系或图表大小来设置图例位置,同时还可以通过设置bbox_to_anchor参数来调整图例的相对位置。通过合理的使用这些方法,我们可以使绘制出来的图表更加具有可读性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程