ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:1.10MB ,
资源ID:8238043      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8238043.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Python数据可视化编程实践绘制图表.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Python数据可视化编程实践绘制图表.docx

1、Python数据可视化编程实践绘制图表Python数据可视化编程实践-绘制图表准备工作打开Jupyter Notebook,导入需要的包,并配置好图片交互和中文显示环境:import pandas as pdimport numpy as npimport sysreload(sys)sys.setdefaultencoding(utf-8)import matplotlib as mplimport matplotlib.pyplot as pltimport matplotlib.cm as cm%matplotlib inlineplt.rcParamsfont.sans-serif=S

2、imHei #用来正常显示中文标签plt.rcParamsaxes.unicode_minus=False #用来正常显示负号定义图表类型柱状图、线形图和堆积柱状图调用figure()方法,创建一个新的图表,接下来的绘图操作都在此图表中进行,参数figsize=(12,6)表示该图表的大小。调用subplot(231)方法把图表分割成2行3列的网格,1表示图形的标号。x = 1, 2, 3, 4y =5, 4, 3, 2plt.figure(figsize=(12,6)plt.subplot(231)plt.plot(x,y) # 折线图plt.subplot(232)plt.bar(x,y)

3、 # 垂直柱状图plt.subplot(233)plt.barh(x,y) # 水平柱状图plt.subplot(234)plt.bar(x,y)y1= 7,8,5,3plt.bar(x,y1,bottom=y,color=r) # 堆叠柱状图 设置参数bottom=yplt.subplot(235)plt.boxplot(x) # 箱线图plt.subplot(236)plt.scatter(x,y) # 散点图plt.show()具体解释下箱线图中的几个最重要的显示选项。首先,我们可以添加从箱体延伸出来的箱须来展示数据集合的整个范围。箱体和箱须主要用于表现一个或多个数据集合中数据的编号,容

4、易对数据进行对比而且易于理解。在同一个箱线图中可以呈现5种数据。最小值:数据集合的最小值。第二四分位数:其以下为数据集合中较低的25%数据。中值:数据集合的中值第三四分位数:其以上为数据集合中较高的25%数据。最大值:给定数据集合的最大值。dataset = 113, 115, 119, 121, 124,124, 125, 126, 126, 126,127, 127, 128, 129, 130,130, 131, 132, 133, 136plt.figure(figsize=(10,6)plt.subplot(121)plt.boxplot(dataset, vert = False)

5、plt.subplot(122)plt.hist(dataset)plt.show()我们用同一个数据集合来绘制箱线图和直方图,观察两种图表在数据展现上的差异。左图呈现了五个统计数据,右图展示了数据集合在给定范围内的分组情况。简单的正弦图和余弦图我们对从-Pi到Pi之间具有相同线性距离的256个点来计算正弦值和余弦值,然后把sin(x)值和cos(x)值在用以图表中绘制出来。x = np.linspace(-np.pi, np.pi, 256, endpoint=True)y = np.cos(x)y1 = np.sin(x)plt.figure(figsize=(10,6)plt.plot(

6、x, y)plt.plot(x, y1)plt.title(Functions $sin$ and $cos$) #设置图标题plt.xlim(-3.0, 3.0) #设置x轴范围plt.ylim(-1.0, 1.0) #设置y轴范围plt.xticks(-np.pi, -np.pi/2, 0, np.pi/2, np.pi,r$-pi$, r$-pi/2$, r$0$, r$+pi/2$, r$+pi$) # 用希腊字母标注x轴标签plt.yticks(-1, 0, +1,r$-1$, r$0$, r$+1$)plt.show()设置坐标轴长度和范围如果不实用axis()或者其他参数设置,m

7、atplotlib会自动使用最小值,刚好可以让我们在一个图中看到所有的数据点。调用autoscale()方法,会以坐标轴的最佳大小适应数据的显示。axis()里面的值分别表示坐标轴上xmin、xmax、ymin、ymaxaxhline()表示绘制了一条y=0的水平线axvline()表示绘制了一条x=0的垂直线axhline(4)表示绘制了一条y=4的水平线l=-1, 1, -10, 10plt.axis(l)plt.axhline()plt.axvline()plt.axhline(4)设置图表的线型、属性和格式化字符串常见的线条样式:- 直线-虚线-. -.形式: 细小虚线常见的点样式:s

8、-方形h-六角形H-六角形*-星号+-加好x-x型d-菱形D-菱形p-五角形常见的颜色样式:c-cyan-青色r-red-红色m-magente-品红g-green-绿色b-blue-蓝色y-yellow-黄色k-black-黑色w-white-白色# plot(x轴数据,y轴数据,展现形式)x = 1, 2, 3, 4, 8y = 5, 7, 2, 1, 5plt.plot(x, y, -, color=g, linewidth=0.8)plt.plot(x, y,*,color=r) #散点图plt.show()设置刻度、刻度标签和网格刻度是图形的一部分,由刻度定位器(指定刻度所在的位置)

9、和刻度格式器(指定刻度显示的样式)组成。刻度有主刻度和次刻度,默认次刻度不显示。locator_params()方法控制刻度定位器,可以控制刻度的数目。plt.figure(figsize=(10,6)# 获取当前坐标ax = plt.gca()# 设置紧凑视图,设置刻度间隔最大为10ax.locator_params(tight=True, nbins = 10)# 生成100个正态分布值ax.plot(np.random.normal(10, .1, 100)plt.show()使用dates模块的一个例子来说明刻度格式器的配置。刻度格式器规定了值的显示方式。import datetime

10、fig = plt.figure(figsize=(10,6)# 获取当前的坐标轴ax = plt.gca()# 设置一些日期区间start = datetime.datetime(2013, 01, 01)stop = datetime.datetime(2013, 12, 31)delta = datetime.timedelta(days = 1)# 转换日期dates = mpl.dates.drange(start, stop, delta)# 产生一些随机值values = np.random.rand(len(dates)ax = plt.gca()# 用日期值画图ax.plot

11、_date(dates, values, linestyle=-, marker=)# 指定格式date_format = mpl.dates.DateFormatter(%Y-%m-%d)# 应用格式ax.xaxis.set_major_formatter(date_format)# 自动格式日期标签fig.autofmt_xdate()plt.show()添加图例和注解图例和注解清洗连贯地解释了数据图表的内容。通过给给个plot添加一个关于所显示数据的简短描述,能让观察者更容易理解。在每个plot中指定了一个字符串标签(label),这样legend()会把它们添加到图例框中。通过loc参

12、数确定图例框的位置。annotate()可以为xy坐标位置的数据点添加字符串描述。通过设置xycoord=data,可以指定注解和数据使用相同的坐标系,注解文本的起始位置通过xytext指定。箭头由xytext指向xy坐标位置。arrowstyle指定了箭头风格。plt.figure(figsize=(10, 6)# 生成不同正态分布值x1 = np.random.normal(30, 3, 100)x2 = np.random.normal(20, 2, 100)x3 = np.random.normal(10, 3, 100)# 在同张画布里画3条线plt.plot(x1, label=p

13、lot)plt.plot(x2, label=2nd plot)plt.plot(x3, label=3nd plot)# 生成图例框plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=3, mode=expand, borderaxespad=0.)# 注解重要值plt.annotate(Important value:(55, 20), (55, 20), xycoords=data, xytext=(5, 38), arrowprops=dict(arrowstyle=-)plt.show()移动轴线到图中央轴线定义了数

14、据区域的边界,把坐标轴刻度标记连接起来。一共有四个轴线,可以把它们放置在任何位置。默认情况下,它们被放置在坐标轴的边界。为了把轴线移到图中央,需要把其中两个轴线隐藏起来(设置color为none)。然后,移动另外两个到坐标(0,0)。坐标为数据空间坐标。x = np.linspace(-np.pi, np.pi, 500, endpoint=True)y = np.sin(x)plt.plot(x, y)ax = plt.gca()ax.spinesright.set_color(none) # 隐藏右边的轴线ax.spinestop.set_color(none) # 隐藏顶端的轴线ax.s

15、pinesbottom.set_position(data, 0) # 移动底端的轴线到(0,0)ax.spinesleft.set_position(data, 0) # 移动左端的轴线到(0,0)ax.xaxis.set_ticks_position(bottom) # 移动底端的刻度到x轴ax.yaxis.set_ticks_position(left) # 移动左侧的刻度到x轴plt.show()绘制直方图直方图被用于可视化数据的分布估计。表示一定间隔下数据点频率的垂直矩阵称为bin。bin以固定的间隔创建,因此直方图的总面积等于数据点的数量。直方图可以显示数据的相对频率,而不是使用数

16、据的绝对值。在这种情况下,总面积等于1。mu = 100sigma = 15x = np.random.normal(mu, sigma, 10000)ax = plt.gca()ax.hist(x, bins=35, color=r, normed=True) # normed=True ,直方图的值将进行归一化处理,形成概率密度。默认值为Falseax.set_xlabel(值)ax.set_ylabel(频率)ax.set_title(r$mathrmHistogram: mu=%d, sigma=%d$ % (mu, sigma)plt.show()绘制误差条形图误差条可以用来可视化数

17、据集中的测量不确定度或者指出错误。经常使用到的参数:xerr和yerr:用于在柱状图上生成误差条。width:给定误差条的宽度,默认值是0.8.bottom:如果指定了bottom,其值会加到高度中,默认值为None。edgecolor:给定误差条边界颜色。ecolor:指定误差条的颜色。linewidth:误差条边界宽度,可以设为None(默认值)和0(此时误差条边界将不显示出来)orientation:有vertical和horizontal两个值。x = np.arange(0, 10, 1)y = np.log(x)xe = 0.1 * np.abs(np.random.randn(l

18、en(y)plt.bar(x, y, yerr=xe, width=0.4, align=center, ecolor=r, color=cyan, label=experiment #1)plt.xlabel(# measurement)plt.ylabel(Measured values)plt.title(Measurements)plt.legend(loc=upper left)plt.show()绘制饼图饼图显示的数据集合加起来必须等于100%,否则它就是无意义的、无效的。饼图描述数值的比例关系,其中每个扇区的弧长大小为其所表示的数量的比例。饼图的缺点:1.难以对数量进行比较。2.

19、以特定角度的方式和一定颜色的扇形展示数据,会使我们的感觉有倾向性,从而影响我们对于所呈现数据得到的结论。plt.figure(figsize=(6, 6)ax = plt.axes(0.1, 0.1, 0.8, 0.8)labels = Spring, Summer, Autumn, Winter# 饼图的每部分定义为x/sum(x),或者为x if sum(x)=y1, facecolor=darkblue, interpolate=True)ax.fill_between(x, y1, y2, where=y2=y1, facecolor=deeppink, interpolate=Tru

20、e)ax.set_title(filled between)plt.show()绘制带彩色标记的散点图散点图显示两组数据的值。散点图可以作为更高级的多维数据可视化的基础,比如绘制散点图矩阵。散点图通常在应用拟合回归之前绘制,用来识别两个变量间的关联。x = np.random.randn(1000)# y1为随机值,与x不相关y1 = np.random.randn(len(x)# y2与x强相关y2 = 1.2 + np.exp(x)fig = plt.figure(figsize=(10, 6)ax1 = plt.subplot(121)# marker参数用来设置点状标记(默认为circ

21、le),alpha参数表示透明度,edgecolors参数表示标记的边界颜色,label参数用于图例框plt.scatter(x, y1, color=indigo, alpha=0.3, edgecolors=white, label=no correl)plt.xlabel(no correlation)plt.grid(True)plt.legend()ax2 = plt.subplot(122, sharey=ax1, sharex=ax1)plt.scatter(x, y2, color=green, alpha=0.3, edgecolor=grey, label=correl)plt.xlabel(strong correlation)plt.grid(True)plt.legend()plt.show()

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1