Python大数据可视化编程实践绘制图表文档格式.docx
《Python大数据可视化编程实践绘制图表文档格式.docx》由会员分享,可在线阅读,更多相关《Python大数据可视化编程实践绘制图表文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
![Python大数据可视化编程实践绘制图表文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/11/1a0884c9-35b0-4e5a-8c0b-c29bc1638865/1a0884c9-35b0-4e5a-8c0b-c29bc16388651.gif)
调用subplot(231)方法把图表分割成2行3列的网格,1表示图形的标号。
x=[1,2,3,4]
y=[5,4,3,2]
plt.figure(figsize=(12,6))
plt.subplot(231)
plt.plot(x,y)#折线图
plt.subplot(232)
plt.bar(x,y)#垂直柱状图
plt.subplot(233)
plt.barh(x,y)#水平柱状图
plt.subplot(234)
plt.bar(x,y)
y1=[7,8,5,3]
plt.bar(x,y1,bottom=y,color='
r'
)#堆叠柱状图设置参数bottom=y
plt.subplot(235)
plt.boxplot(x)#箱线图
plt.subplot(236)
plt.scatter(x,y)#散点图
plt.show()
具体解释下箱线图中的几个最重要的显示选项。
首先,我们可以添加从箱体延伸出来的箱须来展示数据集合的整个X围。
箱体和箱须主要用于表现一个或多个数据集合中数据的编号,容易对数据进展比照而且易于理解。
在同一个箱线图中可以呈现5种数据。
最小值:
数据集合的最小值。
第二四分位数:
其以下为数据集合中较低的25%数据。
中值:
数据集合的中值
第三四分位数:
其以上为数据集合中较高的25%数据。
最大值:
给定数据集合的最大值。
dataset=[113,115,119,121,124,
124,125,126,126,126,
127,127,128,129,130,
130,131,132,133,136]
plt.figure(figsize=(10,6))
plt.subplot(121)
plt.boxplot(dataset,vert=False)
plt.subplot(122)
plt.hist(dataset)
我们用同一个数据集合来绘制箱线图和直方图,观察两种图表在数据展现上的差异。
左图呈现了五个统计数据,右图展示了数据集合在给定X围内的分组情况。
简单的正弦图和余弦图
我们对从-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.plot(x,y)
plt.plot(x,y1)
plt.title("
Functions$\sin$and$\cos$"
)#设置图标题
plt.xlim(-3.0,3.0)#设置x轴X围
plt.ylim(-1.0,1.0)#设置y轴X围
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],
[r'
$-\pi$'
r'
$-\pi/2$'
$0$'
$+\pi/2$'
$+\pi$'
])#用希腊字母标注x轴标签
plt.yticks([-1,0,+1],
$-1$'
$+1$'
])
设置坐标轴长度和X围
如果不实用axis()或者其他参数设置,matplotlib会自动使用最小值,刚好可以让我们在一个图中看到所有的数据点。
调用autoscale()方法,会以坐标轴的最优大小适应数据的显示。
axis()里面的值分别表示坐标轴上xmin、xmax、ymin、ymax
axhline()表示绘制了一条y=0的水平线
axvline()表示绘制了一条x=0的垂直线
axhline(4)表示绘制了一条y=4的水平线
l=[-1,1,-10,10]
plt.axis(l)
plt.axhline()
plt.axvline()
plt.axhline(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]
plt.plot(x,y,'
-'
color='
g'
linewidth=0.8)
plt.plot(x,y,'
*'
color='
)#散点图
设置刻度、刻度标签和网格
刻度是图形的一局部,由刻度定位器〔指定刻度所在的位置〕和刻度格式器〔指定刻度显示的样式〕组成。
刻度有主刻度和次刻度,默认次刻度不显示。
locator_params()方法控制刻度定位器,可以控制刻度的数目。
#获取当前坐标
ax=plt.gca()
#设置紧凑视图,设置刻度间隔最大为10
ax.locator_params(tight=True,nbins=10)
#生成100个正态分布值
ax.plot(np.random.normal(10,.1,100))
使用dates模块的一个例子来说明刻度格式器的配置。
刻度格式器规定了值的显示方式。
importdatetime
fig=plt.figure(figsize=(10,6))
#获取当前的坐标轴
#设置一些日期区间
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.plot_date(dates,values,linestyle='
marker='
'
#指定格式
date_format=mpl.dates.DateFormatter('
%Y-%m-%d'
#应用格式
ax.xaxis.set_major_formatter(date_format)
#自动格式日期标签
fig.autofmt_xdate()
添加图例和注解
图例和注解清洗连贯地解释了数据图表的内容。
通过给给个plot添加一个关于所显示数据的简短描述,能让观察者更容易理解。
在每个plot中指定了一个字符串标签(label),这样legend()会把它们添加到图例框中。
通过loc参数确定图例框的位置。
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)
#在同X画布里画3条线
plt.plot(x1,label='
plot'
plt.plot(x2,label='
2ndplot'
plt.plot(x3,label='
3ndplot'
#生成图例框
plt.legend(bbox_to_anchor=(0.,1.02,1.,.102),loc=3,ncol=3,mode="
expand"
borderaxespad=0.)
#注解重要值
plt.annotate("
Importantvalue:
(55,20)"
(55,20),xycoords='
xytext=(5,38),arrowprops=dict(arrowstyle='
->
))
移动轴线到图中央
轴线定义了数据区域的边界,把坐标轴刻度标记连接起来。
一共有四个轴线,可以把它们放置在任何位置。
默认情况下,它们被放置在坐标轴的边界。
为了把轴线移到图中央,需要把其中两个轴线隐藏起来〔设置color为none〕。
然后,移动另外两个到坐标〔0,0〕。
坐标为数据空间坐标。
x=np.linspace(-np.pi,np.pi,500,endpoint=True)
y=np.sin(x)
ax.spines['
right'
].set_color('
none'
)#隐藏右边的轴线
top'
)#隐藏顶端的轴线
bottom'
].set_position(('
0))#移动底端的轴线到〔0,0〕
left'
0))#移动左端的轴线到(0,0)
ax.xaxis.set_ticks_position('
)#移动底端的刻度到x轴
ax.yaxis.set_ticks_position('
)#移动左侧的刻度到x轴
绘制直方图
直方图被用于可视化数据的分布估计。
表示一定间隔下数据点频率的垂直矩阵称为bin。
bin以固定的间隔创建,因此直方图的总面积等于数据点的