hi欢迎回来,集合半年的Python3学习笔记已经整理成专辑啦,诚意推荐。
python100天还在继续,到第三周的时候就显得有点难啃了,笔记中很难进行很好的转述,因此就对原有的python3笔记进行补充。今天的推送主要解决不同方式下的柱形图可视化,当然主要要使用python。R真香。
Python - 100天从新手到大师|D8-D14学习笔记
柱形图绘图的方式,有需要挑自己喜欢的用。
以下数据使用参考资料中的示例数据。
Plotly绘图包基本使用说明
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Bar(
name='Control',
x=['Trial 1', 'Trial 2', 'Trial 3'], y=[3, 6, 4],
error_y=dict(type='data', array=[1, 0.5, 1.5])
))
fig.add_trace(go.Bar(
name='Experimental',
x=['Trial 1', 'Trial 2', 'Trial 3'], y=[4, 7, 3],
error_y=dict(type='data', array=[0.5, 1, 2])
))
fig.update_layout(barmode='group')
fig.show()
10个python绘图包介绍
import numpy as np
import matplotlib.pyplot as plt
size = 3
x = np.arange(size)
a = [3, 6, 4]
a_SD = [1, 0.5, 1.5]
b = [4, 7, 3]
b_SD = [0.5, 1, 2]
total_width, n = 0.8, 2
width = total_width / n
x = x - (total_width - width) / 2
labels = ['Trial 1', 'Trial 2', 'Trial 3']
plt.bar(x, a, width=width, yerr = a_SD, tick_label=labels, label='Control')
plt.bar(x + width, b, width=width, yerr = b_SD, tick_label=labels ,label='Experimental')
plt.legend()
plt.show()
不难发现,在python绘图中,都需要指定误差线的值以后,才能进行标注的,虽然我们可以使用numpy
进行计算,但是这一部分不在绘图系统中,还是显得有点麻烦。比如下面的两种方式:
import numpy as np
arr = [3, 6, 4]
#求标准差
arr_std = np.std(arr,ddof=1)
print("标准差为:%f" % arr_std)
# 测试数据
tg <- ToothGrowth
# 转换为因子类型
tgc2 <- tgc
tgc2$dose <- factor(tgc2$dose)
# (左)误差线1:Error bars represent standard error of the mean
ggplot(tgc2, aes(x=dose, y=len, fill=supp)) +
geom_bar(position=position_dodge(), stat="identity") +
geom_errorbar(aes(ymin=len-se, ymax=len+se),
width=.2, # 设置误差线的宽度
# (右)误差线2:使用95%置信区间
ggplot(tgc2, aes(x=dose, y=len, fill=supp)) +
geom_bar(position=position_dodge(), stat="identity") +
geom_errorbar(aes(ymin=len-ci, ymax=len+ci),
width=.2, # Width of the error bars
position=position_dodge(.9))
如果要使用标准差进行标注,也需要自行使用公式(见下)计算了以后,在误差线上选择自定值进行修改。
标准差(StandardDeviation),在概率统计中最常使用作为统计分布程度(statisticaldispersion)上的测量。标准差定义是总体各单位标准值与其平均数离差平方的算术平均数的平方根。它反映组内个体间的离散程度。公式如下:
标准差表示的就是样本数据的离散程度。标准差就是样本平均数方差的开平方,标准差通常是相对于样本数据的平均值而定的,通常用M±SD来表示,表示样本某个数据观察值相距平均值有多远。从这里可以看到,标准差受到极值的影响。标准差越小,表明数据越聚集;标准差越大,表明数据越离散。
标准误差表示的是抽样的误差。因为从一个总体中可以抽取出无数多种样本,每一个样本的数据都是对总体的数据的估计。标准误代表的就是当前的样本对总体数据的估计,标准误代表的就是样本均数与总体均数的相对误差。标准误是由样本的标准差除以样本容量的开平方来计算的。从这里可以看到,标准误更大的是受到样本容量的影响。样本容量越大,标准误越小,那么抽样误差就越小,就表明所抽取的样本能够较好地代表总体。
对应excel函数中,如是总体(即估算总体方差),根号内除以n(对应excel函数:STDEVP);如是抽样(即估算样本方差),根号内除以(n-1)(对应excel函数:STDEV)。
柱形图的展现形式除了基础版本,还有簇状及堆叠图,饼图都是变形体,在上述的绘图包中都能实现轻易转换。
主要参考资料
https://plotly.com/python/error-bars/
https://zhuanlan.zhihu.com/p/37915271
https://blog.csdn.net/tanzuozhev/article/details/51106089
https://baike.baidu.com/item/%E6%A0%87%E5%87%86%E5%B7%AE
生信技能树目前已经公开了三个生信知识库,记得来关注哦~
每周文献分享
https://www.yuque.com/biotrainee/weeklypaper
肿瘤外显子分析指南
https://www.yuque.com/biotrainee/wes
生物统计从理论到实践
https://www.yuque.com/biotrainee/biostat