Python可视化-散点图与彩色散点图

散点图与彩色散点图都是表示XY轴坐标之间的变化关系。

但是彩色散点图中点的颜色各有不同。

一、数据文件准备

1、value.txt

0,3.19
1,2.7
2,2.51
3,2.78
4,2.61
5,3.13
6,3.14
7,2.69
8,2.51
9,3.15
10,3.15
11,3.15
12,3.15

第一列是序号索引,第二列是价格数值。

散点图X轴和Y轴分别描绘序号与价格。

2、PeopleNumber.csv

city,people,price
NJ ,823,3.19
XZ ,866,2.7
HA,487,2.51
YC,723,2.78
SQ,485,2.61
TZ,464,3.13
YZ,448,3.14
NT,730,2.69
LYG ,447,2.51
ZJ,318,3.15
WX,651,3.15
SZ,1061,3.15
CZ,470,3.15

彩色散点图X轴和Y轴分别描绘人口与价格的关系,用不同颜色标识不同城市。

第一列是城市(缩写)索引,第二列是人口数值,

第三列是价格数值(原为空,由彩色散点图代码中函数写入)。

csv文件本质上就是以逗号(,)分隔开的txt文件,所以用excel打开形式为:


二、导入模块包

可参考Windows下安装Python、matplotlib包 及相关
https://blog.csdn.net/mikasa3/article/details/78942650 

1、numpy

2、pandas

3、seaborn

4、matplotlib

三、完整代码

如下:

import numpy as np  
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
def DrawScatter(read_name):#散点图
    x = np.arange(0,13)  #生成X轴数据,要与Y轴维度相同
    fr = open(read_name,'r')#打开读取的文件
    value_list = []
    value_data = []
    count = 0
    for line in fr.readlines():#遍历打开的文件
        if not len(line):#跳过空行
          continue
        line = line.strip()
        value_list.append(line.split(','))
        value_data.append(float(value_list[count][1]))
        count += 1
    fig = plt.figure()  
    ax1 = fig.add_subplot(111)  #将画布分割成1行1列,图像画在从左到右从上到下的第1块
    ax1.set_title('Scatter Plot')#散点图的标题
    plt.xlabel('people')#X轴标签 
    plt.ylabel('price')#Y轴标签
    #以X轴Y轴数据集分别为x,value_data开始画图,落点颜色为red,样式marker为o
    ax1.scatter(x, value_data, c = 'r',marker = 'o')
    plt.legend("c")#图例  
    plt.show() #显示散点图 
def DrawColorScatter(read_name,write_name):#彩色散点图,读取的文件名和要写入的文件名
    fr = open(read_name,'r')#打开读取value文件
    value_list = []
    value_data = []
    count = 0
    for line in fr.readlines():
        if not len(line):
          continue
        line = line.strip()
        value_list.append(line.split(','))
        value_data.append(float(value_list[count][1]))
        count += 1
    fp = pd.read_csv(write_name)#打开写入文件,准备将value写入第三列
    count = -1
    flen = fp.iloc[:,0].size
    for item in range(flen):
        if (count == -1):#特殊处理文件第一行index
          count += 1
          continue
        fp.loc[count,['price']] = value_data[count]#修改文件中价格
        count += 1
    fp.to_csv(write_name,index = False,sep=',')#写入文件,默认不含index,以逗号分隔
    #以下开始画图
    g=sns.FacetGrid(fp, hue = "city", palette = "Set1", size = 6)
    #hue指色彩,是散点不同颜色的来源
    g.map(plt.scatter, "people", "price", s = 250, linewidth = 0.65, edgecolor = "white")
    #第2,3个参数是X,Y坐标的标签,s表示散点大小,linewidth表示散点边缘线宽,edgecolor表示散点边缘线色
    g.add_legend()
    plt.show()#显示散点图
if __name__=='__main__':
    DrawScatter("value.txt")#散点图
    DrawColorScatter("value.txt","PeopleNumber.csv")#彩色散点图


四、运行结果

1、散点图


2、彩色散点图


  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python的数据可可以使用三种绘包来实现,它们分别是Matplotlib、Seaborn和ECharts。使用Matplotlib绘制的方法是将数据作为Numpy的ndarray传入,然后使用Matplotlib的函数来生成形。而Seaborn是在Matplotlib的基础上进行封装的,提供了更高级的统计绘功能,也可以用来绘制。ECharts是一款由百度开发的开源表库,使用JavaScript编写,但也提供了Python的接口。 如果想使用Matplotlib来绘制,首先需要安装Matplotlib库,可以使用`pip install matplotlib`命令来进行安装。然后按照以下步骤来进行绘制: 1. 导入必要的库:`import numpy as np`和`import matplotlib.pyplot as plt` 2. 准备数据:使用Numpy生成随机数据作为的数据,例如:`y = np.random.standard_normal(10)` 3. 绘制:使用Matplotlib的scatter函数来绘制,例如:`plt.scatter(x, y)` 4. 添加形标题和轴标签:使用Matplotlib的title、xlabel和ylabel函数来添加形的标题、x轴标签和y轴标签,例如:`plt.title('Scatter Plot')`、`plt.xlabel('X')`和`plt.ylabel('Y')` 5. 显示形:使用Matplotlib的show函数来显示形,例如:`plt.show()` 以上是使用Matplotlib绘制的基本步骤。对于Seaborn和ECharts,使用方法与Matplotlib有所不同,可以根据具体需求选择合适的绘包来进行数据可。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python必看,用三种方式学会制作!](https://blog.csdn.net/littlelianglian/article/details/106917256)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Python 绘制可折线](https://download.csdn.net/download/weixin_38687343/14840810)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Python数据可(基础篇---文并茂详细版!!!)](https://blog.csdn.net/qq_45261963/article/details/118086413)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值