Python数据可视化编程实践绘制图表.docx
- 文档编号:23503647
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:12
- 大小:19.22KB
Python数据可视化编程实践绘制图表.docx
《Python数据可视化编程实践绘制图表.docx》由会员分享,可在线阅读,更多相关《Python数据可视化编程实践绘制图表.docx(12页珍藏版)》请在冰豆网上搜索。
Python数据可视化编程实践绘制图表
Python数据可视化编程实践-绘制图表
准备工作
打开JupyterNotebook,导入需要的包,并配置好图片交互和中文显示环境:
importpandasaspd
importnumpyasnp
importsys
reload(sys)
('utf-8')
importmatplotlibasmpl
importasplt
importascm
%matplotlibinline
['']=['SimHei']#用来正常显示中文标签
['']=False#用来正常显示负号
定义图表类型——柱状图、线形图和堆积柱状图
调用figure()方法,创建一个新的图表,接下来的绘图操作都在此图表中进行,参数figsize=(12,6)表示该图表的大小。
调用subplot(231)方法把图表分割成2行3列的网格,1表示图形的标号。
x=[1,2,3,4]
y=[5,4,3,2]
(figsize=(12,6))
(231)
(x,y)#折线图
(232)
(x,y)#垂直柱状图
(233)
(x,y)#水平柱状图
(234)
(x,y)
y1=[7,8,5,3]
(x,y1,bottom=y,color='r')#堆叠柱状图设置参数bottom=y
(235)
(x)#箱线图
(236)
(x,y)#散点图
()
具体解释下箱线图中的几个最重要的显示选项。
首先,我们可以添加从箱体延伸出来的箱须来展示数据集合的整个范围。
箱体和箱须主要用于表现一个或多个数据集合中数据的编号,容易对数据进行对比而且易于理解。
在同一个箱线图中可以呈现5种数据。
最小值:
数据集合的最小值。
第二四分位数:
其以下为数据集合中较低的25%数据。
中值:
数据集合的中值
第三四分位数:
其以上为数据集合中较高的25%数据。
最大值:
给定数据集合的最大值。
dataset=[113,115,119,121,124,
124,125,126,126,126,
127,127,128,129,130,
130,131,132,133,136]
(figsize=(10,6))
(121)
(dataset,vert=False)
(122)
(dataset)
()
我们用同一个数据集合来绘制箱线图和直方图,观察两种图表在数据展现上的差异。
左图呈现了五个统计数据,右图展示了数据集合在给定范围内的分组情况。
简单的正弦图和余弦图
我们对从-Pi到Pi之间具有相同线性距离的256个点来计算正弦值和余弦值,然后把sin(x)值和cos(x)值在用以图表中绘制出来。
x=,,256,endpoint=True)
y=(x)
y1=(x)
(figsize=(10,6))
(x,y)
(x,y1)
("Functions$\sin$and$\cos$")#设置图标题
#设置x轴范围
#设置y轴范围
([,2,0,2,],
[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$+\pi/2$',r'$+\pi$'])#用希腊字母标注x轴标签
([-1,0,+1],
[r'$-1$',r'$0$',r'$+1$'])
()
设置坐标轴长度和范围
如果不实用axis()或者其他参数设置,matplotlib会自动使用最小值,刚好可以让我们在一个图中看到所有的数据点。
调用autoscale()方法,会以坐标轴的最佳大小适应数据的显示。
axis()里面的值分别表示坐标轴上xmin、xmax、ymin、ymax
axhline()表示绘制了一条y=0的水平线
axvline()表示绘制了一条x=0的垂直线
axhline(4)表示绘制了一条y=4的水平线
l=[-1,1,-10,10]
(l)
()
()
(4)
设置图表的线型、属性和格式化字符串
常见的线条样式:
-直线
--虚线
-.-.形式
:
细小虚线
常见的点样式:
s--方形
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,8]
y=[5,7,2,1,5]
(x,y,'-',color='g',linewidth=
(x,y,'*',color='r')#散点图
()
设置刻度、刻度标签和网格
刻度是图形的一部分,由刻度定位器(指定刻度所在的位置)和刻度格式器(指定刻度显示的样式)组成。
刻度有主刻度和次刻度,默认次刻度不显示。
locator_params()方法控制刻度定位器,可以控制刻度的数目。
(figsize=(10,6))
#获取当前坐标
ax=()
#设置紧凑视图,设置刻度间隔最大为10
(tight=True,nbins=10)
#生成100个正态分布值
.1,100))
()
使用dates模块的一个例子来说明刻度格式器的配置。
刻度格式器规定了值的显示方式。
importdatetime
fig=(figsize=(10,6))
#获取当前的坐标轴
ax=()
#设置一些日期区间
start=(2013,01,01)
stop=(2013,12,31)
delta=(days=1)
#转换日期
dates=stop,delta)
#产生一些随机值
values==()
#用日期值画图
(dates,values,linestyle='-',marker='')
#指定格式
date_format='%Y-%m-%d')
#应用格式
自动格式日期标签
()
()
添加图例和注解
图例和注解清洗连贯地解释了数据图表的内容。
通过给给个plot添加一个关于所显示数据的简短描述,能让观察者更容易理解。
在每个plot中指定了一个字符串标签(label),这样legend()会把它们添加到图例框中。
通过loc参数确定图例框的位置。
annotate()可以为xy坐标位置的数据点添加字符串描述。
通过设置xycoord='data',可以指定注解和数据使用相同的坐标系,注解文本的起始位置通过xytext指定。
箭头由xytext指向xy坐标位置。
arrowstyle指定了箭头风格。
(figsize=(10,6))
#生成不同正态分布值
x1=3,100)
x2=2,100)
x3=3,100)
#在同张画布里画3条线
(x1,label='plot')
(x2,label='2ndplot')
(x3,label='3ndplot')
#生成图例框
(bbox_to_anchor=(0.,,1.,.102),loc=3,ncol=3,mode="expand",borderaxespad=0.)
#注解重要值
("Importantvalue:
(55,20)",(55,20),xycoords='data',xytext=(5,38),arrowprops=dict(arrowstyle='->'))
()
移动轴线到图中央
轴线定义了数据区域的边界,把坐标轴刻度标记连接起来。
一共有四个轴线,可以把它们放置在任何位置。
默认情况下,它们被放置在坐标轴的边界。
为了把轴线移到图中央,需要把其中两个轴线隐藏起来(设置color为none)。
然后,移动另外两个到坐标(0,0)。
坐标为数据空间坐标。
x=,,500,endpoint=True)
y=(x)
(x,y)
ax=()
['right'].set_color('none')#隐藏右边的轴线
['top'].set_color('none')#隐藏顶端的轴线
['bottom'].set_position(('data',0))#移动底端的轴线到(0,0)
['left'].set_position(('data',0))#移动左端的轴线到(0,0)
'bottom')#移动底端的刻度到x轴
'left')#移动左侧的刻度到x轴
()
绘制直方图
直方图被用于可视化数据的分布估计。
表示一定间隔下数据点频率的垂直矩阵称为bin。
bin以固定的间隔创建,因此直方图的总面积等于数据点的数量。
直方图可以显示数据的相对频率,而不是使用数据的绝对值。
在这种情况下,总面积等于1。
mu=100
sigma=15
x=sigma,10000)
ax=()
(x,bins=35,color='r',normed=True)#normed=True,直方图的值将进行归一化处理,形成概率密度。
默认值为False
('值')
('频率')
(r'$\mathrm{Histogram:
}\\mu=%d,\\sigma=%d$'%(mu,sigma))
()
绘制误差条形图
误差条可以用来可视化数据集中的测量不确定度或者指出错误。
经常使用到的参数:
xerr和yerr:
用于在柱状图上生成误差条。
width:
给定误差条的宽度,默认值是.
bottom:
如果指定了bottom,其值会加到高度中,默认值为None。
edgecolor:
给定误差条边界颜色。
ecolor:
指定误差条的颜色。
linewidth:
误差条边界宽度,可以设为None(默认值)和0(此时误差条边界将不显示出来)
orientation:
有vertical和horizontal两个值。
x=(0,10,1)
y=(x)
xe=*y,yerr=xe,width=,align='center',ecolor='r',color='cyan',label='experiment#1')
('#measurement')
('Measuredvalues')
('Measurements')
(loc='upperleft')
()
绘制饼图
饼图显示的数据集合加起来必须等于100%,否则它就是无意义的、无效的。
饼图描述数值的比例关系,其中每个扇区的弧长大小为其所表示的数量的比例。
饼图的缺点:
1.难以对数量进行比较。
2.以特定角度的方式和一定颜色的扇形展示数据,会使我们的感觉有倾向性,从而影响我们对于所呈现数据得到的结论。
(figsize=(6,6))
ax=([,,,])
labels='Spring','Summer','Autumn','Winter'
#饼图的每部分定义为x/sum(x),或者为xifsum(x)<=1
x=[15,30,45,10]
#给定一个分裂序列,每一个元素表示每个圆弧间偏移量,为半径的百分比
explode=,,,
#如果没有指定startangle,扇区将从x轴开始逆时针排列,如果指定的值为90,饼图将从y轴开始
#autpct参数用来格式化绘制在圆弧中的标签
(x,explode=explode,labels=labels,autopct='%%%',startangle=67)
('Rainydaysbyseason')
()
绘制带填充区域的图表
对曲线间或者曲线下面的区域填充颜色,这对我们理解给定的特定信息是非常有必要的。
x=,2,
y1=(2**x)
y2=*(4**x)
fig=(figsize=(10,6))
ax=()
#绘制出两个信号的图形
(x,y1,x,y2,color='black')
#fill_between()方法使用x为定位点选取y值(y1,y2),用where参数指定条件来填充曲线,where参数接手布尔值(可以是表达式)
(x,y1,y2,where=y2>=y1,facecolor='darkblue',interpolate=True)
(x,y1,y2,where=y2<=y1,facecolor='deeppink',interpolate=True)
('filledbetween')
()
绘制带彩色标记的散点图
散点图显示两组数据的值。
散点图可以作为更高级的多维数据可视化的基础,比如绘制散点图矩阵。
散点图通常在应用拟合回归之前绘制,用来识别两个变量间的关联。
x=y1为随机值,与x不相关
y1=y2与x强相关
y2=+(x)
fig=(figsize=(10,6))
ax1=(121)
#marker参数用来设置点状标记(默认为circle),alpha参数表示透明度,edgecolors参数表示标记的边界颜色,label参数用于图例框
(x,y1,color='indigo',alpha=,edgecolors='white',label='nocorrel')
('nocorrelation')
(True)
()
ax2=(122,sharey=ax1,sharex=ax1)
(x,y2,color='green',alpha=,edgecolor='grey',label='correl')
('strongcorrelation')
(True)
()
()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 数据 可视化 编程 实践 绘制 图表