ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python绘图

2021-09-30 20:34:52  阅读:184  来源: 互联网

标签:10 plt cate python label 绘图 X1 scatter


散点图

导包

1 import numpy as np
2 import pandas as pd
3 import matplotlib as mpl
4 import matplotlib.pyplot as plt
5 import seaborn as sns

二维图(一个标签)

X1是10个随机数,满足正态分布,y与X1线性相关。

1 X1=np.random.randn(10)
2 y=X1+X1**2-3
1 # 确定画布尺寸
2 plt.figure(figsize=(8,4)) 
3 # 绘图
4 plt.scatter(X1,y,s=50,c='red',label='Positive')  #s是点的大小
5 #显示label
6 plt.legend()  

效果图如下.

       图1-1 X1与y的图形

 二维图(两个标签)

X1是一个二维数组,10行2列。我将X1的第一列数据作为X轴,X1的第二列数据作为Y轴,一共可绘制除10个点。10个点分为两类,类别对应数组cate,0为一类,1为一类.

1 X1=np.random.randn(10,2)
2 cate=[0,1,1,1,0,1,1,0,0,1]
3 plt.scatter(X1[:,0],X1[:,1],s=20,c=cate)

图形绘制如下.

      图 1-2 X1[:,0]与X1[:,1]对应关系

 由图可知,虽然已经画出了十个点,并且分为了两类,但是并没有显示两个label.scatter里面的label属性只能填一个值,不能填多个值或是传入数组.为了显示对应的图例,我们

需要借助循环.为了方便说明,我先将所有分类列举出来。

我们通过y==0和y==1筛选出两个类型的数据,然后利用将x和y的数据分开,最后给不同类别添上不同的颜色和标签名。

1 plt.scatter(X1[y==0,0],X1[y==0,1],s=20,c='r',label='zero')
2 plt.legend()
1 plt.scatter(X1[y==0,0],X1[y==0,1],s=20,c='r',label='zero')
2 plt.scatter(X1[y==1,0],X1[y==1,1],s=20,c='g',label='one')
3 plt.legend()

       图1-3 zero类的数据散点图            图1-4 zero类和one类的数据散点图

借助for循环画图

1 colors=['blue','green']
2 labels=['good','bad']
3 for i in range(2):
4     plt.scatter(X1[y==i,0],X1[y==i,1],c=colors[i],label=labels[i])
5 plt.legend()

        图 1-5 for循环实现散点图

二维图(多个标签)

查看某个特征里的所有取值,以及取值个数

1 uniq=np.unique(data['category'])
2 len(uniq)

         图 2-1 特征category取无重复值个数              图2-2  特征category共能取14种值

由图可知,我们会使用到始终不同的颜色去渲染图表,这里我们可以使用plt给我们提供的光谱。

1 color=plt.cm.tab10(5.2)
2 # 每一个浮点数代表一种颜色

             图2-3  color对应颜色的rgba

我们规定横坐标为特征area,纵坐标为特征poptoral,一共分为14类。

 循环次数是类别个数,x轴是对应类别的area特征,y轴是对应类别的poptotal特征,我们颜色借助了光谱,在导入颜色时要将颜色数据转换成二维数组。

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

         图  2-4 area和poptotal散点图

 

 

 

 

 

 

   

   

 

标签:10,plt,cate,python,label,绘图,X1,scatter
来源: https://www.cnblogs.com/ld66/p/15358024.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有