我有一个名为df的数据框,如下所示:
Qname X Y Magnitude
Bob 5 19 10
Tom 6 20 20
Jim 3 30 30
我想制作数据的可视文本图。我想在一个数字上绘制Qnames,其坐标设置为= X,Y和s = Size。
我试过了:
fig = plt.figure()
ax = fig.add_axes((0,0,1,1))
X = df.X
Y = df.Y
S = df.magnitude
Name = df.Qname
ax.text(X, Y, Name, size=S, color='red', rotation=0, alpha=1.0, ha='center', va='center')
fig.show()
然而,我的阴谋中没有任何东西出现。非常感谢任何帮助。
答案 0 :(得分:1)
这应该让你开始。 Matplotlib不会为您处理文本放置,因此您可能需要使用它。
import pandas as pd
import matplotlib.pyplot as plt
# replace this with your existing code to read the dataframe
df = pd.read_clipboard()
plt.scatter(df.X, df.Y, s=df.Magnitude)
# annotate the plot
# unfortunately you have to iterate over your points
# see http://stackoverflow.com/q/5147112/553404
for idx, row in df.iterrows():
# see http://stackoverflow.com/q/5147112/553404
# for better annotation options
plt.annotate(row['Qname'], xy=(row['X'], row['Y']))
plt.show()