python可视化学习二(复杂的散点图)

python可视化学习二(复杂的散点图)importnumpyasnpimportpandasaspdimportmatplotlibasmplimportmatplotlib.pyplotaspltimportseabornassns%matplotli

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

#导入数据
midwest = pd.read_csv("midwest_filter.csv")
#查看数据
midwest.head()
midwest.columns
midwest['category']
#提取标签中的类别
categories = np.unique(midwest['category']) #去除重复值,保存唯一值
##为了标签的名称,我们就需要循环和标签的类别数目一样的次数
##所以需要循坏的次数=需要生成的标签的次数=需要生成小数的个数
##只需要在循坏中生成颜色就好了
##所以我们就利用循坏中的i生成14个小数
plt.figure(figsize=(16,10))

for i in range(len(categories)):
   plt.scatter(midwest.loc[midwest['category']==categories[i],'area']
              ,midwest.loc[midwest['category']==categories[i],'poptotal']
              ,s=20
              ,c=np.array(plt.cm.tab10(i/len(categories))).reshape(1,-1)
              ,label= categories[i]        
                       )
plt.legend()
plt.show()

在这里插入图片描述

#####对于我们想要给不同的类型添加不同的标签的做法
######列表推导式###########################
colors=[plt.cm.tab10(i/float(len(categories)-1))for i in range (len(categories))]

colors =[]
for i in range(len(categories)):
    colors.append(plt.cm.tab10(i/float(len(categories)-1))) 
##############################################
###丰富我们的图像
###预设图像的各种属性#####
large = 22 ;med = 16 ; small =12;
params = { 
   'axes.titlesize':large, #子图上标题的大小
         'legend.fontsiz':med,   #图列的字体的大小
          'figure.figsize':(16,10), #图像的画布的大小
          'axes.labelsize': med,  #标签的字体大小
          'xtick.labelsize': med,   #x轴上标尺的字体的大小
          'ytick.labelsize': med,  #y轴上标尺的字体的大小
         'figure.titlesize': large   #整个画布的标题字体大小
         }


#plt.rcParams.update(params) #设置各种各样的默认属性
#plt.style.use('seaborn-whitegird')#设定各种风格有很多属性
sns.set_style('white')#设定背景风格
###准备标签和颜色列表
categories = np.unique(midwest['category'])
colors=[plt.cm.tab10(i/float(len(categories)-1))for i in range (len(categories))]
##########建立画布
plt.figure( figsize=(16,10),  #绘图尺寸
             dpi=80,          #图像的分辩率
            facecolor ='w',  #图像的背景颜色,设置为白色,默认为白色
            edgecolor ='k' #图像的背景颜色,设置为黑色,默认为黑色

)
##############循坏绘图
for i ,category in enumerate(categories):
    plt.scatter('area','poptotal',
                data=midwest.loc[midwest.category==category,:],
               s=20,c=np.array(colors[i]).reshape(1,-1),label=str(category))
    
#注意到这里的数据或去方式和我们之前绘图的不一样了吗?
#我们不仅可以输入横纵坐标,也可以输入横纵坐标的名字,然后使用data这个参数来传入全数据集
#我们不仅可以循坏i,还可以对i和category一同循坏
#############对图像进行装饰############
#plt.gca() 获取当前的子图,如果当前没有子图的话,就帮我创建一个新的子图
plt.gca().set(xlim=(0.0,0.12),ylim=(0,80000))#控制横纵坐标的范围
plt.xticks(fontsize=12)  #坐标轴上的尺寸的字的大小
plt.yticks(fontsize=12)
plt.ylabel('Population',fontsize=12)#坐标轴上的标题和字体的大小
plt.xlabel('Area',fontsize=22)
plt.title('scatterplot of Midwest Area vs Population',fontsize =22)#整个图像的标题和字体的大小
plt.legend(fontsize =12)  #图例的字体的大小
plt.show()
             

在这里插入图片描述

###########################################################两者循化的比较
for i in range(len(categories)):
   plt.scatter(midwest.loc[midwest['category']==categories[i],'area']
              ,midwest.loc[midwest['category']==categories[i],'poptotal']
              ,s=20
              ,c=np.array(plt.cm.tab10(i/len(categories))).reshape(1,-1)
              ,label= categories[i]        
                       )



for i ,category in enumerate(categories):
    plt.scatter('area','poptotal',
                data=midwest.loc[midwest.category==category,:],
               s=20,c=np.array(colors[i]).reshape(1,-1),label=str(category))
    
#######################################################

在这里插入图片描述

今天的文章python可视化学习二(复杂的散点图)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/61748.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注