继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Python可视化-气泡图

慕容森
关注TA
已关注
手记 358
粉丝 183
获赞 649

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

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

一、数据文件准备


1、PeopleNumber.csv

  1. city,people,price  

  2. NJ ,823,3.19  

  3. XZ ,866,2.7  

  4. HA,487,2.51  

  5. YC,723,2.78  

  6. SQ,485,2.61  

  7. TZ,464,3.13  

  8. YZ,448,3.14  

  9. NT,730,2.69  

  10. LYG ,447,2.51  

  11. ZJ,318,3.15  

  12. WX,651,3.15  

  13. SZ,1061,3.15  

  14. 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

三、完整代码

如下:

  1. import numpy as np    

  2. import pandas as pd  

  3. import seaborn as sns  

  4. import matplotlib.pyplot as plt  

  5. def DrawBubble(read_name):#气泡图  

  6.     sns.set(style = "whitegrid")#设置样式  

  7.     fp = pd.read_csv(read_name)#数据来源  

  8.     x = fp.people#X轴数据  

  9.     y = fp.price#Y轴数据  

  10.     z = fp.price#用来调整各个点的大小s  

  11.     cm = plt.cm.get_cmap('RdYlBu')  

  12.     fig,ax = plt.subplots(figsize = (12,10))  

  13.     #注意s离散化的方法,因为需要通过点的大小来直观感受其所表示的数值大小  

  14.     #我所使用的是当前点的数值减去集合中的最小值后+0.1再*1000  

  15.     #参数是X轴数据、Y轴数据、各个点的大小、各个点的颜色  

  16.     bubble = ax.scatter(x, y , s = (z - np.min(z) + 0.1) * 1000, c = z, cmap = cm, linewidth = 0.5, alpha = 0.5)  

  17.     ax.grid()  

  18.     fig.colorbar(bubble)  

  19.     ax.set_xlabel('people of cities', fontsize = 15)#X轴标签  

  20.     ax.set_ylabel('price of something', fontsize = 15)#Y轴标签  

  21.     plt.show()  

  22. if __name__=='__main__':  

  23.     DrawBubble("PeopleNumber.csv")#气泡图  

四、运行结果

1、气泡图


               

           

原文出处


打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP