首页/文章/ 详情

Python学习笔记—数据可视化之美(一)

1年前浏览293

在大佬的强力推荐下,最近作者开始学习《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')

其结果如下图所示:


以上就是美化图片的过程了,希望对大家有所帮助!!

来源:土木爱研小站
python
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-08-16
最近编辑:1年前
语墨
硕士 不怕困难,勇往直前
获赞 66粉丝 74文章 130课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈