气泡图类似散点图,也是表示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、气泡图