Python可视化-气泡图

气泡图类似散点图,也是表示XY轴坐标之间的变化关系,也可以像彩色散点图给点上色。

区别在于可以通过图中散点的大小来直观感受其所表示的数值大小。

一、数据文件准备

1、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 DrawBubble(read_name):#气泡图
    sns.set(style = "whitegrid")#设置样式
    fp = pd.read_csv(read_name)#数据来源
    x = fp.people#X轴数据
    y = fp.price#Y轴数据
    z = fp.price#用来调整各个点的大小s
    cm = plt.cm.get_cmap('RdYlBu')
    fig,ax = plt.subplots(figsize = (12,10))
    #注意s离散化的方法,因为需要通过点的大小来直观感受其所表示的数值大小
    #我所使用的是当前点的数值减去集合中的最小值后+0.1再*1000
    #参数是X轴数据、Y轴数据、各个点的大小、各个点的颜色
    bubble = ax.scatter(x, y , s = (z - np.min(z) + 0.1) * 1000, c = z, cmap = cm, linewidth = 0.5, alpha = 0.5)
    ax.grid()
    fig.colorbar(bubble)
    ax.set_xlabel('people of cities', fontsize = 15)#X轴标签
    ax.set_ylabel('price of something', fontsize = 15)#Y轴标签
    plt.show()
if __name__=='__main__':
    DrawBubble("PeopleNumber.csv")#气泡图

四、运行结果

1、气泡图


猜你喜欢

转载自blog.csdn.net/MIKASA3/article/details/80062769