【python】数据可视化1:matplotlib

matplotlib模块可以数据制作成图表的形式展示,更直观的看到数据的趋势和分布。

在matplotlib模块中默认不显示中文且负号由方块表示,要声明中文字体显示和负号。

柱形图和条形图

柱状图:常用于数据的比对,使用bar()传入x轴和y轴数据绘制。附加的参数width和color可以指定柱形图柱子的宽度和颜色。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']    #设置中文字体(字体的英文)
plt.reParams['axex.unicode_minus']=False    #设置负号的显示
x = ['广州',2,3,4,5]
y = [10, 20, 30, 40, 10]
plt.bar(x,y)    #传入xy轴数据,绘制图像
plt.show()    # 显示图像 
plt.bar(x,y, width=1.5, color='red')    #绘制图像,设置柱子的宽度和颜色

条形图:即打横放置的柱形图,使用barh()绘制,参数width变为height,其他情况同柱形图

折线图和面积图

折线图:描述数据的趋势。使用plot()进行绘制,附加的参数color、参数linewidth、参数linestyle、参数marker、参数marksize分别设置折线颜色、折线粗细、线条形态、数据标记的样式、数据标记的大小。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']    #设置中文字体(字体的英文)
plt.reParams['axex.unicode_minus']=False    #设置负号的显示
x = ['1月', '2月', '3月', '4月', '5月']
y = [10, 20, 30, 40, 50]
plt.plot(x,y, linewidth=0.3, color='bule')    #线粗0.3,蓝色
plt.show()
linestyle折线样式
- 或solid 长实线 -. 或dashdot 横点线
-- 或 dashed 短横序线 none 或 '' 或 '  ' 不画线
. 或 dotted 点线
marker数据标记样式
. 小实心点 s 实心正方 D 正常棱形
o 大实心点 * 实心五角星 d 窄棱形
v 实心倒三角 p 实心五边 + 十字形
^ 实心正三角 h 实心六角 x 叉形

面积图:另一种形式的折线图,使用面积描述趋势。使用stackplot()绘制图形,其余同折线图。

散点图

散点图:容易表示数据的分布散列关系和相关性。用scatter()绘制,参数s、参数marker、参数color、参数edgecolor分别设置点的面积、点的样式、点的填充颜色、点的轮廓颜色。

import matplotlib.pyplot as plt
import pandas as pd
data = pd.read_excel('测试.xlsx') #  引入外部数据
x = data['成绩']
y = data['序号']
plt.scatter(x,y, s=50, marker='o', color='red', edgecolor='black')
plt.show()

饼图和环形图

饼图:展示各类数据的占比。用pie()绘制,传入每一块饼图的值。

参数labels以列表形式传入每一个饼图块的标签(与传入值的顺序对应),参数labeldistance设置每一个饼图块标签与圆心的距离;参数autopct设置百分比数值的格式(自动计算百分比),参数pctdistance设置百分比数值与圆心的距离。

可选参数explode,传入列表设置饼图块与圆心的距离,列表的顺序同值传入的顺序。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']    #设置中文字体(字体的英文)
plt.reParams['axex.unicode_minus']=False    #设置负号的显示
lab = ['中餐', '西餐', '日料', '意餐', '东南亚']
data = [50, 50, 30, 20, 10]
plt.pie(data, labels=lab, labeldistance=1.2, autopct='%.2f%%', pctdistance=1.5)
plt.show()

设置参数wedgeprops,传入字典width设置环形的宽度,linewidth设置边框粗细,edgecolor设置边框颜色,可以把饼图变为圆环图。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']    #设置中文字体(字体的英文)
plt.reParams['axex.unicode_minus']=False    #设置负号的显示
lab = ['中餐', '西餐', '日料', '意餐', '东南亚']
data = [50, 50, 30, 20, 10]
plt.pie(data, labels=lab, labeldistance=1.2, autopct='%.2f%%', pctdistance=1.5, wedgeprops={'width':0.5, 'linewidth':2, 'edgecolor':'white'})
plt.show()

在一个框内绘制多图

先用subplot()划分当前页面,前两个参数声明画面分为多少行多少列,第三个参数声明当前使用第几个区域

import matplotlib.pyplot as plt
plt.subplot(1,2,1)    #画面分为一行两列,当前使用第一个区域
x1 = [1, 2, 3, 4, 5]
y1 = [2, 4, 6, 1, 1]
plt.plot(x1,y1) 

plt.subplot(1,2,2)    #画面分为一行两列,当前使用第二个区域
x2 = [1, 2, 3, 4, 5]
y2 = [1, 2, 3, 4, 5]
plt.plot(x2,y2) 
plt.show()

补充

在matplotlib.pyplot中提供了一些常用的方法以添加图表细节。

title("") 设置图的标题 xlabel("") 设置X轴名称
ylabel("") 设置Y轴名称 xlim(x,y ) 设置X轴的刻度范围为 x~y
ylim(x,y) 设置Y轴的刻度范围为 x~y grid(b=True) 添加网格线,其中附加参数为color,linestyle,linewidth

你可能感兴趣的:(python,#,分析,python)