2024-01-15 17:06:03
演示:http://www.tcomcom.com/6/39.php 大小:1M 安装:PHP版本>=7.1 +MYSQL 访问网址安装,或者/install/安装即可 后台地址:/admin/ 用户admin密码:123456 演示站用宝塔NG系统,阿帕奇也可以,推荐用宝塔 外链网盘,是一款PHP网盘与外链分享程序,支持所有格式文件的上传,可以生成文件外链、图片外链、音乐视频外链,生成外链同时自动生成相应的UBB代码和HTML代码,还可支持文本、图片、音乐、视频在线预览,这不仅仅是一个网盘,更是一个图床亦或是音乐在线试听网站。新版本支持对接阿里云OSS、腾讯云COS、华为云OBS、又拍云、七牛云等云存储,同时增加了图片违规检测功能。 V5.3: 1.新增用户系统,登录用户可保留上传记录 2.默认使用分块上传,解决大文件上传失败问题 3.上传前计算文件hash,支持极速秒传,新增文件完整性校验 4.云存储支持直接对接接口上传,无需本机中转,上传速度更快 5.云存储支持直接链接下载模式,下载速度更快 6.文件下载新增断点续传功能,视频播放可拖拽 7.新增文件搜索功能 8.增加七牛云存储 9.优化文件预览等页面样式 V5.2: 1.增加又拍云和华为云OBS存储 2.修复二维码显示 3.增加上传API接口 V5.1: 1.增加腾讯云COS存储 2.修复SAE兼容性问题 3.修复其他多个问题 V5.0: 1.全新界面,电脑手机自适应 2.视频播放器改用ckplayer,音乐播放器改用APlayer 3.全新的文件类型小图标 4.支持开启视频文件人工审核 5.新增阿里云图片违规检测API 6.所有网站设置均可在后台修改 7.支持自定义本地存储路径 8.新增对接阿里云OSS存储
前面几节我们学习了python中numpy和pandas库的一些常用操作,接下来几个章节,我们学习一个非常重要的数据可视化库matplotlib(seaborn库也有有所涉及)。这里我们需要知道,matplotlib库主要绘制一些2D图形和简单的3D图形。
那么,我们先来看下学习的主要内容:
- 绘制折线图
- 绘制子图
- 绘制柱状图
- 绘制散点图
- 绘制直方图
- 绘制箱型图(箱线图)
而本节我们主要实现折线图、子图和柱状图的绘制,下节内容主要是散点图、直方图、箱线图及一些细节补充。
绘制折线图
先看一下我们的需求,这里有一组数据是某个城市2018年的房价数据,现在我们想看下这一年的趋势,那么就需要绘制出一折线图。
#导入pandas包 import pandas as pd #导入pyplot包 import matplotlib.pyplot as plt unrate = pd.read_excel('price.xlsx') unrate['date'] = pd.to_datetime(unrate['date']) plt.plot(unrate['date'], unrate['price']) plt.show()
上面这个折线图比较粗糙,既没有横坐标名称,也没有纵坐标名称,那能否优化呢?答案当然可以,但在优化之我们详细对这个画图的常用参数做一些说明。
plt.plot(x,y,format_string,**kwargs)
- x:x轴数据,列表或数组,可选
- y:y轴数据,列表或数组
- format_string:控制曲线的格式字符串,由颜色字符、风格字符和标记字符组成。
- **kwargs:第二组或更多,(x,y,format_string)
- plt.xlim、plt.ylim 设置横纵坐标轴范围
- plt.xlabel、plt.ylabel 设置横纵坐标轴名称
- plt.xticks、plt.yticks设置坐标轴刻度
了解这些参数的意义后,我们将上面的图进一步改进,效果如下:
import matplotlib.pyplot as plt plt.plot(unrate['date'], unrate['price'],c='red') #设置纵坐标范围 plt.ylim((8000,10000)) #设置横坐标角度,这里设置为45度 plt.xticks(rotation=45) #设置横纵坐标名称 plt.xlabel("month") plt.ylabel("price") #设置折线图名称 plt.title("the price of 2018") plt.show()
绘制子图
当你在写下fig=plt.figure()时候,python已经给你创建了一张大的画布,既然这是一张画布,那么我们就可以在这张画布上进行分块,在不同的块上做出不同的图形。这个函数就叫fig.add_subplot(),其中传入3个参数,分别代表行、列和位置,比如fig.add_subplot(2,1,3)表示在画布的第三个位置添加一个2行1列的子图。这里需要注意区分多个子图和多图的区别,子图是在一个fig对象上创建多个区块,而多图是创建多个figure对象。
import matplotlib.pyplot as plt fig = plt.figure() ax1 = fig.add_subplot(3,2,1) ax2 = fig.add_subplot(3,2,2) ax2 = fig.add_subplot(3,2,6) plt.show()
fig = plt.figure(figsize=(10,6)) colors = ['red', 'blue', 'green', 'orange', 'black'] for i in range(5): start_index = i*12 end_index = (i+1)*12 subset = unrate[start_index:end_index] label = str(1948 + i) plt.plot(subset['MONTH'], subset['VALUE'], c=colors[i], label=label) #添加图例,loc='upper left表示图例位置在最左侧,一般也可以直接使用loc='best' plt.legend(loc='upper left') plt.xlabel('Month, Integer') plt.ylabel('Unemployment Rate, Percent') plt.title('Monthly Unemployment Trends, 1948-1952') plt.show()
绘制柱状图
绘制柱状图,我们主要用到bar()函数。我们先看下bar()的构造函数:bar(x,height, width,*,align='center',**kwargs)
x:包含所有柱子的下标的列表
height:包含所有柱子的高度值的列表
width:每个柱子的宽度。可以指定一个固定值,那么所有的柱子都是一样的宽。或者设置一个列表,这样可以分别对每个柱子设定不同的宽度。
align:柱子对齐方式,有两个可选值:center和edge。center表示每根柱子是根据下标来对齐, edge则表示每根柱子全部以下标为起点,然后显示到下标的右边。如果不指定该参数,默认值是center。
除了以上几个重要的参数,还有几个样式参数:color,设置颜色;edgecolor设置边框颜色;linewidth设置柱子的边框宽度;tick_label,柱子上显示的标签。
下面我们用代码实现柱状图:
import pandas as pd import matplotlib.pyplot as plt from numpy import arange reviews = pd.read_csv('fandango_scores.csv') cols = ['FILM', 'RT_user_norm', 'Metacritic_user_nom', 'IMDB_norm', 'Fandango_Ratingvalue', 'Fandango_Stars'] norm_reviews = reviews[cols] #print(norm_reviews[:1]) num_cols = ['RT_user_norm', 'Metacritic_user_nom', 'IMDB_norm', 'Fandango_Ratingvalue', 'Fandango_Stars'] bar_heights = norm_reviews.ix[0, num_cols].values print(bar_heights) bar_positions = arange(5) + 0.75 #print bar_positions fig, ax = plt.subplots() ax.bar(bar_positions, bar_heights, 0.3) plt.show()
今天内容到此为止,下节我们继续讲散点图、直方图、箱型图和其他细节补充,喜欢的小伙伴请点击关注、收藏。(点击外链获取练习数据)