Matplotlib

数据读取、写入、保存

  1. 第一行导入集成工具包,如pyplot(画图)、numpy(矩阵分析)、xlrd(读取Excel文件)、xlwt(创建、写入Excel文件):

import matplotlib.pyplot as plt
import numpy as np
import xlrd
import xlwt

  1. 设定保存图片尺寸和分辨率
    生成20×9.76英寸,dpi为960的图片,图片分辨率为20×960-9.76×960=19200×9389.12

plt.figure(figsize=(20,9.76),dpi=960)

  1. Excel文件的读取
  • 打开要读取的Excel文件:

data=xlrd.open_workbook('C:/Users/th/Desktop/ov1.xlsx')

  • 指定打开哪个sheet表,参数0打开sheet1,参数1打开sheet2...:

table=data.sheet_by_index(0)

  • 指定读取sheet表中某一整行或某一整列数据,参数0读取第一行(列),参数2读取第二行(列)...:

row=table.row_values(0)
col=table.col_values(0)

  • 指定读取某一单元格内的数据,例如读取第5行第8列所在单元格内的数据:

b=table.cell(5,8).value

  • 获取打开的sheet表中有多少行或多少列数据:

i=len(row)
j=len(col)

  1. Excel文件的创建和写入
  • 使用xlwt创建名为ov2的Excel文件,注意后缀格式为.xls,不支持.xlsx格式:

book=xlwt.Workbook('C:/Users/th/Desktop/ov2.xls')

  • 在已创建的Excel表ov2.xls中新建sheet1:

sheet=book.add_sheet('sheet1',cell_overwrite_ok=True)

  • 向已创建的sheet表的第a行第i列写入数据b:

sheet.write(a,i,b)

  1. 坐标轴设置

plt.axis([0.5,j+.5,-250,250])
plt.xticks([2,5,8,11,14],['217V','218H','219K','220Y','221L'],FontProperties='Times New Roman',fontsize=15)
plt.yticks(np.arange(-250,300,50),FontProperties='Times New Roman',fontsize=15)
plt.xlabel('Residues',FontProperties='Times New Roman',fontsize=15)
plt.ylabel('Dihedral(°)',FontProperties='Times New Roman',fontsize=15)

  1. 图片的保存

plt.savefig('C:/Users/th/Desktop/p2.jpg',dpi=960)


Python基本函数


画图参数

  1. plt.plot线图
  • label图例内容
  • linewidth粗细
  • color颜色,参数可为单字母'g'、单词'green'、十六进制颜色代码,如#191970
  • alpha透明度,0~1,越低颜色越浅

plt.plot(x,y,label='300k-loop1',linewidth=2,color='g',alpha=0.5)
plt.plot([1,2,3],[5,7,4],label='300k-loop1',linewidth=2,color='g',alpha=0.5)

  1. plt.violinplot小提琴图
    Excel表中有10列数据,将这10列数据依次放入列表y中,然后用plt.violinplot函数做成小提琴图,小提琴图宽度表示概率大小,showmeans表示是否显示平均值,showmedians表示是否显示中位数,showextrema=False表示是否显示类似error bar的极端线,下面的for循环设定了小提琴图的面颜色、边框颜色及透明度:

y=[]
for i in range(0,10):
col=table.col_values(i)
y.append(col)
parts=plt.violinplot(y,showmeans=False,showmedians=False,showextrema=False)
for pc in parts['bodies']:
pc.set_facecolor('r')
pc.set_edgecolor('r')
pc.set_alpha(0.5)

  1. 极坐标散点图
    将Excel表中第20列的500个角度数据在极坐标中以散点的形式显示,通过for循环将该列每一项数据都除180再乘pi,转化为以pi表示的角度,依次存入Theta列表中,使用projection='polar'声明生成极坐标图,再用scatter函数在生成的极坐标系中作图,其中Theta为角度数据列表,r1为散点距离极坐标圆心的距离,s=500设定散点大小,color='r'设定散点颜色,alpha=0.3设定散点透明度,最后通过plt.axis([-np.pi,np.pi,0,3.5])设定极坐标系角度范围为-180°+180°(默认为0°360°)和半径,通过ax.set_theta_zero_location('N')设定0°位置('N'北,'NW'西北,'W'西,'SW'西南,'S'南,'SE'东南,'E'东,'NE'东北),通过ax.set_theta_direction(-1)设定顺时针(-1)还是逆时针(1),通过rlim设定比较范围,通过rgrids设定网格

r=np.ones(500)
Theta=[]
for i in range(0,500):
r1=1r
theta=(table.cell(i,21).value)/180
np.pi
Theta.append(theta)
ax=plt.subplot(111,projection='polar')
ax.scatter(Theta,r1,s=500,color='r',alpha=0.3)
plt.axis([-np.pi,np.pi,0,3.5])
plt.xticks(np.arange(-np.pi,np.pi,45/180*np.pi),('-180°','-135°','-90°','-45°','0°','45°','90°','135°',''),FontProperties='Times New Roman',fontsize=15)
ax.set_theta_zero_location('N')
ax.set_theta_direction(-1)
ax.set_rlim(0,3.5)
ax.set_rgrids(np.arange(0,3.5,1),('','χ1','χ2','χ3'),FontProperties='Times New Roman',fontsize=15)

  1. 图中标记线
  • 在图中标记y=3.5的直线(h表示horizontal,横):

plt.axhline(3.5,linewidth=1,color='r')

  • 在图中标记x=3.5的直线(v表示vertical,竖):

plt.axvline(3.5,linewidth=1,color='r')

  • 在图中画x=3.5,y轴1~2范围的线段:

plt.axvline(3.5,ymin=1,ymax=2,linewidth=1,color='r')

  • 在图中画一段阴影:

plt.axvspan(3.5,linewidth=1,color='r')

  1. 图例legend
  • loc图例位置(0:'best',1:'upper right',2:'upper left',3:'lower left',4:'lower right',5:'right',6:'center left',7:'center right',8:'lower center',9:'upper center',10:'center',用数字表示不需加单引号)
  • fontsize图例字体大小
  • frameon=False去掉图例边框
  • edgecolor='blue'图例边框颜色
  • facecolor='green'图例背景颜色
  • title='figure 1 legend'图例标题

plt.legend(loc='lower left',fontsize=15)

  1. **

数据读取

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,306评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,657评论 2 307
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,928评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,688评论 0 220
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,105评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,024评论 1 225
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,159评论 2 318
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,937评论 0 212
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,689评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,851评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,325评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,651评论 3 263
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,364评论 3 244
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,192评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,985评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,154评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,955评论 2 279

推荐阅读更多精彩内容