5行代码,带你完成数据可视化
Posted 医维视界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5行代码,带你完成数据可视化相关的知识,希望对你有一定的参考价值。
医维视界致力面向广大医生群体提供IT相关的解决方案包括大数据处理、数据分析、IT应用工具等等。
帮助医疗工作人员充分利用AI等相关技术赋能医疗行业,提高医疗从业者的工作效率。
·······以下正文·····
很多医生在论文中,都需要对实验数据进行可视化工作,便于观察其中规律和趋势,不同数据之间是否具备统计学差异
在数据统计过程需要绘图方便统计,如统计直方图、饼状图、生存分析图、火山图等等
那这次医疗助手小维给大家介绍一下如何使用python可以非常简单的画出图表
matplotlib和seaborn是python中应用较多的两个可视化库,可以支持方便的在python环境下进行数据可视化,以便满足数学统计与分析的需要
本文重点介绍matplotlib的使用,对于各类图形,尝试只用5行代码内完成可视化操作
1.绘制函数图像
1.1 生成数据,这里先生成一个简单的x的平方函数和三次方函数,定义域取值在0到10间
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 200, endpoint=True)
x_square,x_cube = x**2,x**3
1.2 使用默认配置实现简易绘图,这里只需要三行代码,即可实现可视化
plt.plot(x,x_square)
plt.plot(x,x_cube)
plt.show()
效果图:
1.3 接下来我们试试改变一下图像的颜色,线条宽度。color的取值便是颜色,linewidth代表宽度
plt.plot(x,x_square,color="blue", linewidth=2.5)
plt.plot(x,x_cube,color="red", linewidth=2.5)
plt.show()
效果图:
1.4 接下来我们试着加上图例,说明一下每个线条代表什么,这里用到plt.legend()函数,里面的loc参数表示图例的位置
plt.plot(x,x_square,color="blue", linewidth=2.5, linestyle="-",label="x_square")
plt.plot(x,x_cube,color="red", linewidth=2.5, linestyle="-",label="x_cube")
plt.legend(loc='upper left')
plt.show()
效果图:
1.5 接下来我们试着在x轴和y轴加上我们的变量名称,这里用x_data和y_data表示,为了好看,我们再加个网格,用plt.grid(True)实现
plt.plot(x,x_square,color="blue", linewidth=2.5, linestyle="-",label="x_square")
plt.plot(x,x_cube,color="red", linewidth=2.5, linestyle="-",label="x_cube")
plt.legend(loc='upper left')
plt.xlabel("x_data"),plt.ylabel("y_data")
plt.grid(True)
效果图:
2 饼状图
饼状图一般用于统计占比时候使用,我们也试试通过5行代码来解决可视化问题
2.1 首先生成随机数据,这里要在1到5之间取5个数
import numpy as np
import matplotlib.pyplot as plt
Z = np.arange(1,6)
接着我们通过两行代码画个饼状图,调用plt.pie()即可
plt.pie(Z)
plt.show()
效果图:
2.2 接着我们看看加上标题:十月份的花销,主要在饮食,子女花费,交通等几方面。并且将占比算出来
labels = ['food','child','house','travel','other']
plt.pie(Z,labels=labels,autopct='%1.1f%%',shadow=False,startangle=150)
plt.title("money cost in oct")
plt.show()
效果图:
2.3 当我们想侧重展示某一块,那么就可以用explode这个参数,如下,explode=[0.05,0,0,0,0],第一项food设为0.05,表示突出这一项
labels = ['food','child','house','travel','other']
plt.pie(Z,labels=labels,explode=[0.05,0,0,0,0],autopct='%1.1f%%',shadow=False,startangle=150)
plt.title("money cost in oct")
plt.show()
2.4 我们还可以给饼状图第每一片加上边缘,看起来效果更好,需设置shadow=True,同样的,我们在左上角加上图例,用到的依然是legend()函数,bbox_to_anchor用来设置边距
labels = ['food','child','house','travel','other']
plt.pie(Z,labels=labels,explode=[0.05,0,0,0,0],autopct='%1.1f%%',shadow=True,startangle=150)
plt.title("money cost in oct")
plt.legend(loc="upper right",bbox_to_anchor=(1.5,0.5))
plt.show()
效果图:
3.柱状图
3.1 同样的我们先生成数据
X = np.arange(5)
Y1 = (1-X/10)
3.2 运用plt.bar()即可
plt.bar(X, Y1)
效果图:
3.3 然后我们加一些颜色,这里的'#9999ff'是颜色的16进制信息,使用这种方式的好处是可以设置任何你想要的颜色,你在网上调色板可以选择自己喜欢的颜色,生成16进制信息即可,许多网页都提供该功能
plt.bar(X, Y1, facecolor='#9999ff')
效果图:
3.4 我们也可以设置bar的宽度,比如 width=0.5,同样的我们加上x和y轴的名称,这里用到的是plt.xlabel()和plt.ylabel()
plt.bar(X, Y1, facecolor='#9999ff', width=0.5)
plt.xlabel("x_data"),plt.ylabel("y_data")
plt.show()
效果图:
3.5 接着我们加上图例,比如这里是全国五个城市的信息,citys = ("北京", "上海", "广州", "深圳", "成都"),我们加上label="citys"参数,加上plt.legend(),则表示添加图例
citys = ("beijing", "shanghai", "guangzhou", "shenzhen", "chengdu")
plt.bar(X, Y1, facecolor='#9999ff',label="citys", width=0.5,tick_label=citys)
plt.xlabel("x_data"),plt.ylabel("y_data")
plt.legend()
plt.show()
效果图:
后面将给广大医疗朋友们继续分享数据可视化相关内容,敬请期待!!
如有不解的地方欢迎后台留言
发送内容: 【医院名字】【科室】【姓名】【联系方式】【需要什么帮助】
往期回顾:
以上是关于5行代码,带你完成数据可视化的主要内容,如果未能解决你的问题,请参考以下文章
5行代码带你爬取 “2021福布斯排行榜“,看看中国都有哪些人?
5行代码带你爬取 “2021福布斯排行榜“,看看中国都有哪些人?