数据可视化是指将数据以图形、图像和图表的形式表示,并利用数据分析和开发工具发现其中未知信息的处理过程。
使用 Matplotlib 绘图
Matplotlib 是一个功能强大的绘图库,它里面的 pyplot 模块中封装了一系列用于绘制图表、添加和设置辅助元素的函数,可以帮助用户轻松地将数据转换为想要的图表。
import matplotlib.pyplot as plt
plt.title(text):设置图表标题plt.xlabel(text):设置 x 轴的标题plt.ylabel(text):设置 y 轴的标题plt.rcParams['font.sans-serif'] = ['字体名']:设置字体样式plt.text(x ,y ,text ,ha ,va ,fontsize):设置柱体的数据内容- x:水平方向的位置
- y:垂直方向的位置
- ha:水平方向(居中?左对齐?右对齐?)
- va:垂直方向(居中?上对齐?下对齐?)
plt.legend(handles ,labels):设置图例- handles:显示的图例(数组)
- labels:根据柱体设置的柱体类别(数组)
折线图
plt.plot(x ,y ,marker ,ms)- x:x 轴数据(数组类型)
- y:y 轴数据(数组类型)
- marker:数据点样式
- o:圆点
- *:星型
- ms:数据点的大小
如果希望在一张图上绘制两段折线,可以多次调用 plot() 函数绘制
x = np.arange(1,16)
y = np.array([32,33,34,34,33,31,30,29,30,29,26,23,21,25,31])
# 根据一组数据绘制折线图
plt.plot(x,y)
plt.show()
![图片[1]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260517220951180-image.png)
x = np.arange(1,16)
y = np.array([32,33,34,34,33,31,30,29,30,29,26,23,21,25,31])
x1=np.arange(1,16)
y1=np.array([13,23,44,34,23,31,35,22,15,34,46,53,13,34,42])
# 根据两组数据绘制折线图
plt.plot(x1,y1)
plt.plot(x,y)
plt.show()
![图片[2]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260517221432998-image.png)
x = np.arange(1,16)
y = np.array([32,33,34,34,33,31,30,29,30,29,26,23,21,25,31])
x1=np.arange(1,16)
y1=np.array([13,23,44,34,23,31,35,22,15,34,46,53,13,34,42])
# 根据两组数据绘制折线图
# 数据标记点为圆形,大小为6像素
plt.plot(x1,y1,marker='o',ms=6)
# 数据标记点为星型,大小为8像素
plt.plot(x,y,marker='*',ms=8)
plt.show()
![图片[3]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260517221725738-image.png)
x = np.arange(1,16)
y = np.array([32,33,34,34,33,31,30,29,30,29,26,23,21,25,31])
x1=np.arange(1,16)
y1=np.array([13,23,44,34,23,31,35,22,15,34,46,53,13,34,42])
# 根据两组数据绘制折线图
plt.title('大标题')
plt.xlabel('x 轴标题')
plt.ylabel('y 轴标题')
plt.plot(x1,y1,marker='o',ms=6)
plt.plot(x,y,marker='*',ms=8)
plt.show()
![图片[4]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260517222158817-image.png)
柱形图
plt.bar(x ,y ,tick_label ,width)- x:x 轴数据(数组类型)
- y:y 轴数据(数组类型)
- tick_label:x 轴对应柱体的别名
- width:柱体宽度
- label:柱体类别
x = np.arange(1,16)
y = np.array([1932,5633,4834,8934,3423,3891,7830,1329,3530,4529,5626,6823,6521,8425,5831])
# 根据一组数据绘图
plt.bar(x,y,tick_label=['FY01','FY02','FY03','FY04','FY05','FY06','FY07','FY08','FY09','FY010','FY011','FY012','FY013','FY014','FY015'])
plt.show()
![图片[5]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260517222806349-image.png)
x = np.arange(1,16)
y = np.array([1932,5633,4834,8934,3423,3891,7830,1329,3530,4529,5626,6823,6521,8425,5831])
y1 = np.array([1332,3633,6834,7934,8423,9891,3830,5329,4530,7529,8626,5823,6521,3425,9831])
# 根据两组数据绘图
plt.bar(x,y,tick_label=['FY01','FY02','FY03','FY04','FY05','FY06','FY07','FY08','FY09','FY010','FY011','FY012','FY013','FY014','FY015'],width=0.5)
plt.bar(x,y1,tick_label=['FY01','FY02','FY03','FY04','FY05','FY06','FY07','FY08','FY09','FY010','FY011','FY012','FY013','FY014','FY015'],width=0.5)
plt.show()
- width:柱形的宽度
![图片[6]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260517223311269-image.png)
x = np.arange(1,6)
y = np.array([1932,5633,4834,8934,3423])
y1 = np.array([1332,3633,6834,7934,8423])
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.title('大标题')
plt.xlabel('x 轴标题')
plt.ylabel('y 轴标题')
a = plt.bar(x,y,tick_label=['FY01','FY02','FY03','FY04','FY05'],width=0.5, label='A')
b = plt.bar(x+0.5,y1,width=0.5, label='B')# 添加注释文本
def autolabel(objs):
for obj in objs:
# 获取每个柱子的高度
objH = obj.get_height()
# 获取每个柱子的 x 值
objX = obj.get_x()
# 获取每个柱子的宽度
objW = obj.get_width()
plt.text(objX + objW / 2,objH + 30,s='{}'.format(objH),ha = 'center',va = 'bottom',fontsize = 9)
autolabel(a)
autolabel(b)
# 添加图例
plt.legend(handles=[a, b], labels=['A', 'B'])
plt.show()
![图片[7]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518114321916-image.png)
直方图
plt.hist(arr ,bins ,color ,edgecolor ,alpha)- arr:传入的数据(数组)
- bins:将传入的数据分成对应的份数
- edgecolor:柱子的轮廓颜色
- alpha:柱子颜色的透明度
- 返回值:
- nums:频数
- bins:区间
- patches:矩形对象
plt.xticks(bins ,bins):显示直方图的刻度值- bins:区间数据
arr = np.random.randint(0,256,50)
# 根据一组数据绘图
plt.hist(arr,bins = 10,color='c',edgecolor='r',alpha=0.7)
plt.title('大标题')
plt.xlabel('x 轴标题')
plt.ylabel('y 轴标题')
plt.show()
![图片[8]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518124540711-image.png)
arr = np.random.randint(0,256,50)
nums,bins,patches= plt.hist(arr,bins = 10,color='c',edgecolor='r',alpha=0.7)
plt.title('大标题')
plt.xlabel('x 轴标题')
plt.ylabel('y 轴标题')
plt.xticks(bins,bins)
plt.show()
![图片[9]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518125402339-image.png)
散点图
plt.scatter(x ,y ,s ,c ,edgecolor)- x:x 轴数据(数组类型)
- y:y 轴数据(数组类型)
- s:数据点的大小
- c:数据点的颜色
- edgecolor:数据点的轮廓颜色
plt.grid(visible ,linewidth):设置网格线- visible:是否显示网格线
- linewidth:网格线的宽度
plt.xlim(left ,right):设置水平方向左右两边的预留宽度- left:设置左边的预留宽度
- right:设置右边的预留宽度
area = np.array([255.98,247.07,253.14,457.85,241.58,301.01,20.67,288.64,163.53,120.06,
207.83,342.75,147.9,53.06,224.72,29.51,400.65,205.35,330.64,339.25])
price=np.array([196.63,203.88,210.75,372.74,202.41,247.61,24.9,239.34,140.32,104.15,
176.84,288.23,128.79,49.65,191.74,33.1,30.74,400.02,205.02,330.654])
# 根据一组数据绘图
plt.scatter(area,price,s=50,c='y',edgecolor='k')
plt.title('大标题')
plt.xlabel('x 轴标题')
plt.ylabel('y 轴标题')
plt.show()
![图片[10]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518130502841-image.png)
area = np.array([255.98,247.07,253.14,457.85,241.58,301.01,20.67,288.64,163.53,120.06,
207.83,342.75,147.9,53.06,224.72,29.51,400.65,205.35,330.64,339.25])
price=np.array([196.63,203.88,210.75,372.74,202.41,247.61,24.9,239.34,140.32,104.15,
176.84,288.23,128.79,49.65,191.74,33.1,30.74,400.02,205.02,330.654])
plt.scatter(area,price,s=50,c='y',edgecolor='k')
plt.grid(visible=True,linewidth=0.5)
plt.xlim(area.min()-30,area.max()+30)
plt.title('大标题')
plt.xlabel('x 轴标题')
plt.ylabel('y 轴标题')
plt.show()
![图片[11]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518131023618-image.png)
使用 Seaborn 绘图
Matplotlib 是比较优秀的绘图库,但是 API 使用起来比较过于复杂,其内部有上千个函数,且每个函数都有非常多的参数。Seaborn 基于 Matplotlib 进行了更高级的封装,相比 Matplotlib 可以轻松地画出漂亮的图表,使用图表的配色更加舒服,以及图表元素的样式更加细腻。
import seaborn as sns
sns.load_dataset(name ,data_home = 'data/seaborn-data'):加载自带的数据(加载成功后得到一个 DataFrame 对象)- name:数据集名称
- data_home:表示缓存数据的目录
可视化数据的分布
sns.displot(arr ,bins ,kind ,rug)(默认绘制直方图)- arr:数据(数组)
- bins:需要将数据分成的组数
- kind:图像类型
- kde:平滑密度曲线图(看数据集中的地方,分布形状是否时堆成的,有没有多个峰值)
- rug:是否在地毯图(x 轴上)上显示原始数据
sns.jointplot(x ,y ,data):用于绘制散点图、二维直方图、二维密度图- x:x 轴的数据列名,用于获取 data 中的列数据
- y:y 轴的数据列名,用于获取 data 中的列数据
- data:提供的数据对象
- kind:图像的类型
- hex:六边形图
- kde:核密度估计图(颜色越深,数据点密度越高)
- shade:是否填充颜色
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
sns.displot(tips['total_bill'],bins=10)
![图片[12]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518132809854-image.png)
平滑密度曲线图:
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
sns.displot(tips['total_bill'],kind='kde')
![图片[13]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518133039844-image.png)
显示密度观察条:
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
sns.displot(tips['total_bill'],kind='kde',rug=True)
![图片[14]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518133202407-image.png)
在 Seaborn 中,jointplot() 函数用于绘制散点图、二维直方图、二维密度图,以反映两变量之间的关系,以及每个变量在单独坐标轴上的分布情况。
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
sns.jointplot(x='total_bill',y='tip',data=tips)
![图片[15]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518134326301-image.png)
六边形图:
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
sns.jointplot(x='total_bill',y='tip',data=tips,kind='hex')
![图片[16]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518134613853-image.png)
核密度估计图:
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
sns.jointplot(x='total_bill',y='tip',data=tips,kind='kde',shade=True)
![图片[17]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518134908351-image.png)
tips = pd.DataFrame({
'total_bill': [16.99, 10.34, 21.01, 23.68, 24.59, 25.29, 8.77, 26.88, 15.04,
14.78, 10.27, 35.26, 15.42, 18.43, 14.87, 21.58, 10.33, 16.29,
16.97, 20.65, 17.92, 20.29, 15.77, 39.42, 19.82, 17.81, 13.37,
12.69, 21.70, 19.65, 9.55, 18.35, 15.06, 20.69, 17.78, 24.06,
16.31, 16.50, 18.42, 17.65, 22.01, 18.60, 17.37, 17.40, 15.50],
'tip': [1.01, 1.66, 3.50, 3.31, 3.61, 4.71, 2.00, 3.12, 1.96, 3.23, 1.71,
5.00, 1.57, 3.00, 1.66, 3.50, 1.50, 3.08, 2.75, 3.35, 2.55, 3.60,
1.50, 7.56, 2.00, 1.72, 1.57, 1.45, 4.00, 1.58, 1.50, 2.00, 1.56,
3.09, 2.75, 3.00, 2.41, 3.00, 2.15, 2.10, 3.00, 1.51, 1.50, 2.60, 1.93],
'sex': ['Female','Male','Male','Male','Female','Male','Male','Male','Male',
'Male','Male','Female','Male','Male','Female','Male','Female','Male',
'Female','Male','Male','Male','Male','Male','Male','Male','Male','Male',
'Male','Male','Female','Male','Male','Male','Male','Female','Male','Male',
'Male','Male','Male','Male','Male','Female','Male'][:45],
'smoker': ['No','No','No','No','No','No','No','No','No','No','Yes','No','No','No',
'No','No','No','No','No','No','Yes','No','Yes','No','No','No','No','No',
'No','No','No','No','No','No','Yes','No','No','No','No','No','Yes','No',
'No','No','No'][:45],
'day': ['Sun','Sun','Sun','Sun','Sun','Sun','Sun','Sun','Sun','Sun','Sun','Sun',
'Sun','Sun','Sun','Sun','Sun','Sun','Sun','Sun','Sun','Thur','Thur','Thur',
'Thur','Thur','Thur','Thur','Thur','Thur','Thur','Fri','Fri','Fri','Fri',
'Fri','Sat','Sat','Sat','Sat','Sat','Sat','Sat','Sat','Sat'][:45],
'time': ['Dinner','Dinner','Dinner','Dinner','Dinner','Dinner','Dinner','Dinner',
'Dinner','Dinner','Dinner','Dinner','Dinner','Dinner','Dinner','Dinner',
'Dinner','Dinner','Dinner','Dinner','Dinner','Lunch','Lunch','Lunch','Lunch',
'Lunch','Lunch','Lunch','Lunch','Lunch','Lunch','Lunch','Lunch','Lunch','Lunch',
'Lunch','Dinner','Dinner','Dinner','Dinner','Dinner','Dinner','Dinner','Dinner',
'Dinner'][:45],
'size': [2, 3, 3, 2, 4, 4, 2, 4, 2, 2, 2, 2, 2, 4, 2, 2, 3, 3, 2, 2, 2, 2,
2, 6, 2, 2, 2, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 2, 4, 3, 2, 3, 3][:45]
})
tips.head()
用分类数据绘图
分类数据时比较常见的数据类型,他按照现象的某种属性进行分类或分组而得到的反应事物类型的数据。
sns.stripplot(x ,y ,data):根据分类数据绘制散点图- x:x 轴的数据列名,用于获取 data 中的列数据
- y:y 轴的数据列名,用于获取 data 中的列数据
- data:提供的数据对象
sns.awarmplot(x ,y ,data):根据分类数据绘制散点图(数据点不会重叠)- x:x 轴的数据列名,用于获取 data 中的列数据
- y:y 轴的数据列名,用于获取 data 中的列数据
- data:提供的数据对象
sns.boxplot(x ,y ,data):箱型图- x:x 轴的数据列名,用于获取 data 中的列数据
- y:y 轴的数据列名,用于获取 data 中的列数据
- data:提供的数据对象
sns.violinplot(x ,y ,data):小提琴图- x:x 轴的数据列名,用于获取 data 中的列数据
- y:y 轴的数据列名,用于获取 data 中的列数据
- data:提供的数据对象
sns.barplot(x ,y ,data):柱形图- x:x 轴的数据列名,用于获取 data 中的列数据
- y:y 轴的数据列名,用于获取 data 中的列数据
- data:提供的数据对象
sns.pointplot(x ,y ,data):点图- data:提供的数据对象
- y:y 轴的数据列名,用于获取 data 中的列数据
- data:提供的数据对象
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
sns.stripplot(x='day',y='total_bill',data=tips)
![图片[18]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518135527948-image.png)
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
# 解决数据点重叠的为题
sns.swarmplot(x='day',y='total_bill',data=tips)
![图片[19]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518135953274-image.png)
如果希望查看每个分类下数据的分布情况,可以通过箱型图和提琴图进行展示,其中箱型图可以查看数据的四分位的情况,而小提琴图结合了箱型图与核密度图的特征,用于展示多组数据的分布情况以及概率密度。
箱型图:
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
sns.boxplot(x='day',y='total_bill',data=tips)
![图片[20]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518140714293-image.png)
小提琴图:
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
sns.violinplot(x='day',y='total_bill',data=tips)
![图片[21]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518141509286-image.png)
要想查看分类数据中每个分类的集中趋势,可以使用柱形图和点位图进行展示。
柱形图:
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
sns.barplot(x='day',y='total_bill',data=tips)
![图片[22]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518141956385-image.png)
点图:
# 加载自带的数据(加载成功后得到一个 DataFrame 对象)
tips = sns.load_dataset('tips',data_home = 'data/seaborn-data')
sns.pointplot(x='day',y='total_bill',data=tips)
![图片[23]-[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260518142327180-image.png)
使用 Pyecharts 绘图
Pyecharts 是一个用于生成 Echarts 图表的开源库,它可以帮助用户在不了解 JavaScript 语言的情况,通过自身封装的一些方法绘制基于 JavaScript 实现的 Echarts 图表,使图表呈现出炫酷的效果。
Pyecharts 库支持绘制多种图表类型,包括基本图表(包含饼图、雷达图、词云图、漏斗图等)、直角坐标系图表、树形图表、地理图表、3D 图表、组合图表。
创建步骤:
- 创建图表类的对象
- Pyecharts 库的 charts 模块中提供了很多封装图表功能的图标类,具体如下:
| 类 | 说明 | 类 | 说明 |
| Line | 折线图 | WordCloud | 词云图 |
| PictorialBar | 象形柱形图 | Map | 统计地图 |
| Bar | 柱形图 / 条形图 | HeatMap | 热力图 |
| Scatter | 散点图 / 气泡图 | Funnel | 漏斗图 |
| Boxplot | 箱型图 | Gauge | 仪表盘 |
| Radar | 雷达图 | SanKey | 桑基图 |
| Pie | 饼图 / 圆环图 | Tree | 树状图 |
表中所有的类都继承自 Base 基类,他们可以使用类名同名的构造方法实例化对象。例如:Bar 类的构造方法的语法格式如下:
# init_opts 参数表示初始化配置项,用于给图表指定一些通用的属性,比如背景颜色、画布大小等
Bar(init_opts = opts.InitOpts())
创建一个 Bar 类的对象,并使用默认大小的画布:
from pyecharts.charts from Bar
bar = Bar()
- 添加图表用到的数据
- 每个图表类的内部都提供了添加图表用到的数据的方法
add()或add_xxx()方法,其中直角坐标系图表类一般可以通过add_xaxis()或add_yaxis()方法添加 x 轴或 y 轴的数据。
- 每个图表类的内部都提供了添加图表用到的数据的方法
bar.add_xaxis(['羊毛衫','衬衫','裤子','短袖','高跟鞋','袜子'])
bar.add_yaxis('商家 A',[5000,2000,3600,1000,9000,7500])
- 添加图表配置项
- Pyecharts 库的 options 模块中包含众多关于制定图表组件及样式的配置项,具体如下:
| 类 | 说明 | 类 | 说明 |
| InitOpts | 初始化配置项 | VisualMapOpts | 视觉映射配置项 |
| AnumationOpts | Echarts 画图动画配置项 | TooltipOpts | 提示框配置项 |
| ToolBoxFeatureOpts | 工具箱工具配置项 | AxisLineOpts | 坐标轴轴脊配置项 |
| ToolBoxOpts | 工具箱配置项 | AxisTickOpts | 坐标轴刻度配置项 |
| BrushOpts | 区域选择组件配置项 | AxisPointerOpts | 坐标轴指示器配置项 |
| TitleOpts | 标题配置项 | AxisOpts | 坐标轴配置项 |
| DataZoomOpts | 数据区域缩放配置项 | SingleAxisOpts | 单轴配置项 |
| LegendOpts | 图例配置项 | GraphicGroup | 原生图形元素配置项 |
表中的配置项,每个类都可以通过与类同名的构造方法实例化对象,例如:通过 TitleOpts 类的构造方法创建 TitleOpts 类的对象。
from pyechars import options as opts
opts.TitleOpts(title = '我是柱形图',subtitle = '我是副标题')
| 类 | 说明 | 类 | 说明 |
| ItemStyleOpts | 图元样式配置项 | MarkLineOpts | 标记先配置项 |
| TextStyleOpts | 文本样式配置项 | MarkAreaOpts | 标记区域配置项 |
| LabelOpts | 标签配置项 | EffectOpts | 涟漪特效配置项 |
| LineStyleOpts | 线条样式配置项 | AreaStyleOpts | 区域填充样式配置项 |
| SpliteLineOpts | 分割线配置项 | SpliteAreaOpts | 分割区域配置项 |
| MarkPointOpts | 标记点配置项 | GridOpts | 直角坐标系网格配置项 |
在表中,每个类都可以通过与类同名的构造方法实例化对象,例如:通过 LabelOpts 类的构造方法创建 LabelOpts 类的对象,生成一个标签配置项。
opts.LabelOpts(position = 'inside',color = 'white',font_size=10)
如果需要为图表添加系列配置项,则需要将系列配置项传入到 add() 或 add_xx() 的方法中。
- 渲染图表
- 图表 Base 基类提供了渲染图表的方法,分别是
render()和render_notebook(),其中 render() 方法用于将图表渲染到 HTML 文件,默认为位于程序根目录的 render.html 文件;render_notebook()方法用于将图表渲染到 Jupyter Notebook 工具中。
- 图表 Base 基类提供了渲染图表的方法,分别是
bar.render_notebook()
绘制柱形图
import pandas as pd
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_NOTEBOOK
job = pd.DataFrame({
'地区': ['北京','上海','云南','浙江','重庆','南京','天津','河北','西安','武汉'],
'指数': [80, 90, 40, 50, 60, 89, 45, 76, 92, 89]
})
bar = (
Bar()
.add_xaxis(job['地区'].tolist())
.add_yaxis('指数', job['指数'].tolist())
.set_global_opts(
title_opts=opts.TitleOpts(title='数据分析'),
yaxis_opts=opts.AxisOpts(name='指数', name_location='center', name_gap=35)
)
)
bar.render_notebook()
绘制词云图
import pandas as pd
from pyecharts.charts import WordCloud
from pyecharts import options as opts
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_NOTEBOOK
job = pd.DataFrame({
'地区': ['北京','上海','云南','浙江','重庆','南京','天津','河北','西安','武汉'],
'指数': [80, 90, 40, 50, 60, 89, 45, 76, 92, 89]
})
bar = (
WordCloud()
.add('',data_pair = list(zip(job['地区'].tolist(),job['指数'].tolist())),word_size_range = [6,40])
.set_global_opts(
title_opts=opts.TitleOpts(title='数据分析'),
yaxis_opts=opts.TextStyleOpts(font_size = 23)
)
)
bar.render_notebook()
绘制气泡图
import pandas as pd
from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.globals import CurrentConfig, NotebookType
from pyecharts.commons.utils import JsCode # ← 漏了这个导入
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_NOTEBOOK
job = pd.DataFrame({
'地区': ['北京','上海','云南','浙江','重庆','南京','天津','河北','西安','武汉'],
'指数': [80, 90, 40, 50, 60, 89, 45, 76, 92, 89],
'平均薪资': [12000, 19500, 4400, 8250, 7460, 7189, 8945, 8676, 8392, 9989]
})
scatter = (
Scatter()
.add_xaxis(job['平均薪资'].tolist())
.add_yaxis(
'指数',
[list(z) for z in zip(job['平均薪资'].tolist(), job['指数'].tolist())],
label_opts=opts.LabelOpts(
formatter=JsCode('function(params){return params.value[2]}')
)
)
.set_global_opts(
title_opts=opts.TitleOpts(title='数据分析'),
visualmap_opts=opts.VisualMapOpts(
type_='size', max_=1500, min_=200, dimension=1
),
tooltip_opts=opts.TooltipOpts(
formatter=JsCode('function(params){return "平均薪资:"+params.value[0]}')
),
xaxis_opts=opts.AxisOpts(
min_=4000, name='平均薪资', name_location='center', name_gap=23
),
yaxis_opts=opts.AxisOpts(
min_=300, max_=1800, name='指数', name_location='center', name_gap=40
)
)
)
scatter.render_notebook()
![[学习笔记 Day09]数据分析与应用:数据可视化-资源刺客](http://images.kodo.cdn.itdka.cn/wp-content/uploads/2025/09/20250923154612655.png)

![[学习笔记 Day08]数据分析与应用:数据聚合与分组运算-资源刺客](https://images.kodo.cdn.itdka.cn/wp-content/uploads/2025/09/20250923154612655.png)
![[学习笔记 Day01]C++基础:简单的程序设计,始于梦想的开始!-资源刺客](http://images.kodo.cdn.itdka.cn/wp-content/uploads/2025/09/20250922171813209.webp)
![[学习笔记 Day02]Vue基础:前端造梦,继续干!-资源刺客](http://images.kodo.cdn.itdka.cn/wp-content/uploads/2025/09/20250919193418264.jpeg)

![[123盘直链防盗刷教程] WordPress子比主题下载配置123云盘直链鉴权教程-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/07/20260713220147718-123盘直链防盗刷教程-scaled.png)
![[学习笔记 Day01] Future 基础:Dart 语言从初识到异步编程的代码编写的蜕变-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260522182552195-科技感ENVI安装教程封面-10.png)
![[手把手教] 从DartSDK 的下载以及安装教程到编辑器的配置,包学会!-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260522162412506-科技感ENVI安装教程封面-9.png)

![[学习笔记 Day03]Redis 基础:Redis 设计的优化建议与最佳实践-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260521215425110-科技感ENVI安装教程封面-8.png)
![[学习笔记 Day02]Redis + OpenResty + Lua 实现多级缓存-资源刺客](https://images.kodo.cdn.itdka.cn/wp-contents/uploads/2026/05/20260521202850344-科技感ENVI安装教程封面-7.png)
![[自动化 + 手残党专属]宝塔安装AllinSSL证书管理教程-资源刺客](http://images.kodo.cdn.itdka.cn/wp-content/uploads/2025/11/20251112122722716.png)




![[GitHub]Clawdbot-feishu:OpenClaw 的飞书集成插件-资源刺客](http://images.kodo.cdn.itdka.cn/wp-content/uploads/2026/02/20260214135015363.png)

![[学习笔记 Day04]ASP.NET WEB 设计基础:让自己的程序飞向世界的每一个角落-资源刺客](http://images.kodo.cdn.itdka.cn/wp-content/uploads/2025/08/20250827185617438.jpeg)



暂无评论内容