matplotlib画图

第一次用matplotlib画图,记录一下自己的代码…
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df=pd.read_csv(filename,index_col=0)

read_csv()读取逗号分隔的文件,index_col=0将第一列变成索引,默认情况下将第一行作为表头

df=df.T #将df转置

画一个图中包含多个子图

代码如下:

def make_picture(a_list):	
	df.loc['16_19_sum']=df.loc['16':'19',:].apply(lambda x :x.sum())
#行求和,划重点!!索引是object类型
		fig=plt.figure(figsize=(15,8))
#设置整个幕布的大小
		fig.suptitle(i,x=0.5,y=0.95)
#设置总标题,(x,y)的值确定标题的位置
	for i in a_list:

#画子图1
		ax1=fig.add_axes([0.12,0.52,0.5,0.4])
#设置子图位置和大小[bottom,left,width,height](底坐标,左坐标,宽度,高度)
		df=df_knownf[i]
		df.columns=['Indel','SNP']
		df.plot(ax=ax1,color=['red','blue'],kind='bar',figsize=(10,5))
#kind='bar',画柱状图
#figsize,设置图片大小
		ax1.set_title('Known',x=0.5,y=0.88)
#设置子图的标题
		ax1.set_xticks([])
#将x轴刻度值隐藏
		ax1.set_ylim(0,0.82)
#设置y轴上下限
		ax1.set_xlim(-0.5,19.5)
#设置x轴上下限


#画子图2
		ax2=fig.add_axes([0.12,0.1,0.5,0.4])
		df1=df_novelf[i]
		df1.columns=['Indel','SNP']
		df1.plot(ax=ax2,color=['red','blue'],kind='bar',figsize=(10,5))
		ax2.set_title('Novel',x=0.5,y=0.88)
		ax2.set_xlabel('Mutation allele count(MAC)',fontsize=10,fontweight='heavy')
#设置x轴坐标,fontsize是字体大小,fontweight是字体是否加粗
		ax2.set_ylabel('Fraction in each variant type',x=0,y=1,fontsize=10,fontweight='heavy')
		ax2.set_ylim(0,0.82)
		plt.xticks(rotation=0)
#将x轴的值旋转90度
		ax2.set_xlim(-0.5,19.5)


#画子图3
		ax3=fig.add_axes([0.7,0.52,0.2,0.4])
		df=df_known[i]
		df.columns=['Indel','SNP']
		df.loc[['16_19_sum','20'],:].plot(ax=ax3,color=['red','blue'],kind='bar',xticks=[],figsize=(5,5))
		ax3.set_title('Known',x=0.5,y=0.88)
		ax3.set_ylabel('Number of Variant(thousand)',x=0,y=0.5,fontsize=10,fontweight='heavy')
		plt.yticks([i*(10**5) for i in range(0,8)],[i*(10**2) for i in range(0,8)])
#替换y轴原有的刻度,plt.yticks([原刻度],[更改后的刻度])
		ax3.set_xticks([])


#画子图4
		ax4=fig.add_axes([0.7,0.1,0.2,0.4])
		df1=df_novel[i]
		df1.columns=['Indel','SNP']
		df1.loc[['16_19_sum','20'],:].plot(ax=ax4,color=['red','blue'],kind='bar',figsize=(5,5),use_index=False)
		ax4.set_title('Novel',x=0.5,y=0.88)
		ax4.set_ylabel('Number of Variant',x=0,y=0.5,fontsize=10,fontweight='heavy')
		ax4.set_xlabel('Mutation allele count(MAC)',fontsize=10,fontweight='heavy')
		plt.xticks([0,1],['16-19',20],rotation=0)
		plt.yticks(np.linspace(0,500,6))
#np.linspace(0,500,6),将区间[0,500]等距离取6个数(0,100,200,300,400,500)
		
		
		plt.show()

a_list=[‘Jakun’,‘Bateq’,‘Temiar’]
make_20_picture(a_list)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值