我想为每个
(x,y)
散点图点旋转文本/标签。
这是我的数据框:
import pandas as pd
import seaborn sns
df1 = pd.DataFrame({"one": [1,2,3,5,6,7,8],
"two": [3,6,4,3,8,2,5],
"label":['a','b','c','d','e','f','g']})
ax = sns.scatterplot(x='one', y='two', data = df1)
for line in range(0,df1.shape[0]):
ax.text(df1.one[line]+0.04,
df1.two[line],
df1.label[line], horizontalalignment='left',
size='medium', color='black', weight='semibold')
我想将标签旋转到 45,以便它们可见/清晰。
使用此代码旋转图形上的标签
df1 = pd.DataFrame({"one": [1,2,3,5,6,7,8],
"two": [3,6,4,3,8,2,5],
"label":['a','b','c','d','e','f','g']})
ax=sns.scatterplot(x='one', y='two', data = df1)
a=pd.concat({"x":df1["one"],"y":df1["two"],"lab":df1["label"]},axis=1)
for i ,point in a.iterrows():
ax.text(point['x'],point['y'],str(point['lab'])).set_rotation(45)
以下会做:
plt.figure(figsize=(10,10))
p1 = sns.scatterplot(x='one', y='two', data=df1, legend=False)
for i in range(0,df1.shape[0]):
p1.text(df1.one[i]+0.04, df1.two[i],
df1.label[i], horizontalalignment='left',
size='medium', color='black', weight='semibold')
plt.title('Example Plot')
plt.xlabel('One')
plt.ylabel('Two')