将表格设置为:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
list_1=[['AU',152,474.0],
['CA',440,482.0],
['DE',250,564.0,],
['ES',707,549.0,],
['FR',1435,551.0,],
['GB',731,555.0,],
['IT',979,600.0,],
['NDF',45041,357.0,],
['NL',247,542.0,],
['PT',83,462.0,],
['US',20095,513.0,],
['other',3655,526.0,]]
labels=['country_destination','num_users','avg_hours_spend']
df=pd.DataFrame(list_1,columns=labels)
df=df.set_index('country_destination')
df
country_destination num_users avg_hours_spend
AU 152 474.0
CA 440 482.0
DE 250 564.0
ES 707 549.0
FR 1435 551.0
GB 731 555.0
IT 979 600.0
NDF 45041 357.0
NL 247 542.0
PT 83 462.0
US 20095 513.0
other 3655 526.0
我需要绘制散点图:
y = df['avg_hours_spend']
x = df['num_users']
N=12
colors = np.random.rand(N)
plt.scatter(x, y,c=colors)
plt.title('Web Sessions Data of Users')
plt.xlabel('No.Of.Users')
plt.ylabel('Mean Hours Users Spends on the Website')
plt.legend()
plt.show()
每种颜色在不同国家/地区的散点图
需要: 我想做一个大圆圈,并在右侧添加图例,以使每个国家/地区使用不同的颜色。 怎么样?
答案 0 :(得分:2)
在matplotlib中,您可以为每个国家/地区(即数据框索引的每个级别)添加一个不同的散点,并将s
参数设置为所需的任意值(因为您想要更大的点,因此我添加了{{ 1}}:
s=100
使用seaborn可以使用不同的语法获得相似的结果:
for i, row in df.iterrows():
plt.scatter(x=row.num_users, y=row.avg_hours_spend, label=i, s=100)
plt.title("Web Sessions Data of Users")
plt.xlabel("No.Of.Users")
plt.ylabel("Mean Hours Users Spends on the Website")
plt.legend()
plt.show()