如何调整 Seaborn 图中的刻度数?
在本文中,我们将讨论如何调整 Seaborn Plots 中的刻度数。刻度是用于在 XY 坐标上显示某些特定点的值,它可以是字符串或数字。我们将看到如何选择最优或扩展刻度数以同时显示在 x 轴和 y 轴上。
matplotlib 库的 axes 模块中的 Axes.set_xticks() 和 Axes.set_yticks() 函数分别用于设置带有 X 轴和 Y 轴上的刻度列表的刻度。
Syntax:
For xticks:
Axes.set_xticks(self, ticks, minor=False)
For yticks:
Axes.set_yticks(self, ticks, minor=False)
Parameters:
- ticks: This parameter is the list of x-axis/y-axis tick locations.
- minor: This parameter is used whether set major ticks or to set minor ticks
Return value:
This method does not returns any value.
示例 1:调整数字 X – 使用 set_xticks() 的刻度
在此示例中,我们将 xticks 的数量设置为数据帧中存在的数据长度。
Python3
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
# create DataFrame
df = pd.DataFrame({'a': np.random.rand(8), 'b': np.random.rand(8)})
# create lineplot
g = sns.lineplot(data=df)
# set the ticks first
g.set_xticks(range(8))
# set the labels
g.set_xticklabels(['2011', '2012', '2013', '2014',
'2015', '2016', '2017', '2018'])
Python3
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
# create DataFrame
df = pd.DataFrame({'a': np.random.rand(8), 'b': np.random.rand(8)})
# create lineplot
g = sns.lineplot(data=df)
# set the ticks first
g.set_yticks(range(len(df)-5))
# set the labels
g.set_xticklabels(['2011', '2012', '2013', '2014',
'2015', '2016', '2017', '2018'])
Python3
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# create DataFrame
df = pd.DataFrame({'var1': [25, 12, 15, 14, 19, 23, 25, 29],
'var2': [5, 7, 7, 9, 12, 9, 9, 4]})
# create scatterplot
sns.scatterplot(data=df, x='var1', y='var2')
# specify positions of ticks on x-axis and y-axis
plt.xticks([15, 20, 25], ['A', 'B', 'C'])
plt.yticks([4, 8, 12], ['Low', 'Medium', 'High'])
输出:
示例 2:调整数字 Y – 使用 set_yticks() 的刻度
在此示例中,我们将 yticks 的数量设置为数据帧中存在的数据长度。
Python3
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="darkgrid")
# create DataFrame
df = pd.DataFrame({'a': np.random.rand(8), 'b': np.random.rand(8)})
# create lineplot
g = sns.lineplot(data=df)
# set the ticks first
g.set_yticks(range(len(df)-5))
# set the labels
g.set_xticklabels(['2011', '2012', '2013', '2014',
'2015', '2016', '2017', '2018'])
输出:
示例 3:使用 xticks() 和 yticks() 调整 X 和 Y 刻度数
在这个例子中,我们设置了 x 轴和 y 轴上刻度的特定位置的数量
Python3
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# create DataFrame
df = pd.DataFrame({'var1': [25, 12, 15, 14, 19, 23, 25, 29],
'var2': [5, 7, 7, 9, 12, 9, 9, 4]})
# create scatterplot
sns.scatterplot(data=df, x='var1', y='var2')
# specify positions of ticks on x-axis and y-axis
plt.xticks([15, 20, 25], ['A', 'B', 'C'])
plt.yticks([4, 8, 12], ['Low', 'Medium', 'High'])
输出: