Python学习笔记—数据可视化之美(一)
浏览:2110 评论:1 收藏:3
在大佬的强力推荐下,最近作者开始学习《Python数据可视化之美》这本书。通过之前的学习,大家可以掌握较为简单的绘图方法。那么如何将绘制的图更加美观的显示出来呢?这也将是笔者学习的东西。接下来,让我们开始学习的新篇章吧!!!
案例:
假设我们有四组数据,分别表示四组不同的正向骨架曲线(其结果在excel中显示如下图所示),那么怎么将结果一步步的美化呢?
首先,我们先在python中画出该图。代码及结果如下:
import xlrdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falset = xlrd.open_workbook('美化数据.xls')sheet = t.sheet_by_index(0)x1_data=[] #需要将数据储存在空列表中才可调用绘图y1_data=[]x2_data=[]y2_data=[]x3_data=[]y3_data=[]x4_data=[]y4_data=[]for row in range(sheet.nrows):content1 = sheet.cell_value(row,0)x1_data.append(content1)content2 = sheet.cell_value(row,1)y1_data.append(content2)content3 = sheet.cell_value(row,2)x2_data.append(content3)content4 = sheet.cell_value(row,3)y2_data.append(content4)content5 = sheet.cell_value(row, 4)x3_data.append(content5)content6 = sheet.cell_value(row, 5)y3_data.append(content6)content7 = sheet.cell_value(row, 6)x4_data.append(content7)content8 = sheet.cell_value(row, 7)y4_data.append(content8)x = [x1_data,x2_data,x3_data,x4_data]y = [y1_data,y2_data,y3_data,y4_data]fig = plt.figure(figsize=(4,3),dpi=100) #使用figsize设置图像大小,dpi设置分辨率for i in range(4):x1 = x[i]y1 = y[i]plt.plot(x1,y1)tic = [0,5,10,15,20]plt.xticks(tic)plt.rcParams['xtick.direction'] = 'in'plt.rcParams['ytick.direction'] = 'in'plt.show()
其结果显示如下:
美化第二步,进行相应代码添加
x = [x1_data,x2_data,x3_data,x4_data]y = [y1_data,y2_data,y3_data,y4_data]z = ['数据1','数据2','数据3','数据4']fig = plt.figure(figsize=(4,3),dpi=100) #使用figsize设置图像大小,dpi设置分辨率colors = ['#c41a1c', '#377eb8', '#4daf4a', '#984ea3']markers = ['o', 's', 'H', 'D']for i in range(4): x1 = x[i] y1 = y[i] plt.plot(x1,y1,marker=markers[i],markerfacecolor=colors[i],markersize=8,markeredgewidth=0.5,color='k',linewidth=0.5, linestyle='-',label=z[i])
其结果显示如下:
美化第三步,进行刻度线、边框线的修改。其代码修改如下:
plt.xlabel('位移',fontsize = 14)plt.ylabel('荷载',fontsize = 14)plt.xlim(0,20) #设置x轴范围plt.ylim(0,90)plt.xticks(np.linspace(0,20,11,endpoint=True),fontsize = 10)plt.yticks(np.linspace(0,90,10,endpoint=True),fontsize = 10)ax = plt.gca() ##删除右边和顶部的边框线ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')plt.legend(['数据1','数据2','数据3','数据4'],loc='upper left',edgecolor='none',facecolor='none')
其结果如下图所示:
以上就是美化图片的过程了,希望对大家有所帮助!!
欢迎大家关注公众号“土木爱研小站”并加入学术交流群
您的每一个赞和关注都是我前进的动力!!!
技术邻APP
工程师必备
工程师必备
- 项目客服
- 培训客服
- 平台客服
TOP
1
1
3




















