import numpy as np
import importlib as mpl
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
df=pd.read_csv('mpg_ggplot2.csv')
df.head()
df.loc[:,['cty','hwy']]
plt.figure(figsize=(6,6))
plt.scatter(df.cty,df.hwy);
有两种手段可解决以上的问题,抖动图与技数图来知道同一做坐标下的点,stripplot来进行绘制 sns.stripplot() 重要的参数: jitter:抖动的幅度(及两个位置两个点位置距离的大小)0表示完全不存在的抖动
fig,ax =plt.subplots(figsize=(12,8),dpi=80)
sns.stripplot(df.cty,df.hwy,
jitter=0.25,
size=8,
ax=ax,
linewidth=.5,
palette='tab10',
)
plt.rcParams['font.sans-serif']=['Simhei']
plt.xlabel('城市里程/加仑',fontsize=16)
plt.ylabel('公路里程/加仑',fontsize=16)
plt.xticks(fontsize=16)
plt.yticks(fontsize=16)
plt.title('scatterplot with line ofbest',fontsize=20)
plt.show()
计数图
df_counts=df.groupby(['hwy','cty']).size().reset_index(name="counts")
fig,ax =plt.subplots(figsize=(12,8),dpi=80)
sns.stripplot(df_counts.cty,
df_counts.hwy,
sizes=df_counts.counts*20,
)
plt.rcParams['font.sans-serif']=['Simhei']
plt.xlabel('城市里程/加仑',fontsize=16)
plt.ylabel('公路里程/加仑',fontsize=16)
plt.xticks(fontsize=16)
plt.yticks(fontsize=16)
plt.title('scatterplot with line of best',fontsize=20)
plt.show()
|