目錄
前言
一、氣泡圖的繪制
1、什么是氣泡圖?他適用于什么數(shù)據(jù)?
2、圖形效果展示
3、導(dǎo)入需要用到的庫(kù)
4、讀取要分析的數(shù)據(jù)
5、檢查數(shù)據(jù)是否有問(wèn)題
6、將要對(duì)比數(shù)據(jù)提取出來(lái)
7、畫(huà)圖
二、三維散點(diǎn)圖的繪制
1、什么是三維散點(diǎn)圖?
2、導(dǎo)入需要用到的數(shù)據(jù)庫(kù)
3、畫(huà)圖
三、多重柱形圖的繪制
1、什么是多重柱形圖?
2、效果圖展示
3、導(dǎo)入需要用到的庫(kù)
4、讀取要分析的數(shù)據(jù)
5、分組聚合
6、遍歷
7、畫(huà)圖
四、總結(jié)
前言
氣泡圖與散點(diǎn)圖十分相似,它們總稱為數(shù)據(jù)關(guān)系型圖,散點(diǎn)圖主要分為二維散點(diǎn)圖與三維散點(diǎn)圖、常用于反映數(shù)值之間的相對(duì)位置,而氣泡圖常用于展示三維甚至四維變量的關(guān)系,由一個(gè)個(gè)像氣泡元素組成。而多重柱形圖可以用來(lái)展現(xiàn)某個(gè)分類(lèi)下多個(gè)數(shù)據(jù)的對(duì)比。接下來(lái)讓我們一起來(lái)看看氣泡圖和、三維散點(diǎn)圖和多重柱形圖的繪制。本人也是一位正在學(xué)習(xí)中的新手,了解有限,有什么錯(cuò)誤的地方大家多多指點(diǎn)。
一、氣泡圖的繪制
1、什么是氣泡圖?他適用于什么數(shù)據(jù)?
氣泡圖的其中一條變量的表現(xiàn)形式是體現(xiàn)在氣泡的大小或顏色深淺上,如果一個(gè)數(shù)據(jù)集中包含非常多的點(diǎn),那么散點(diǎn)圖可以將這些數(shù)據(jù)對(duì)比的結(jié)果一目了然,是比較適用的。
2、圖形效果展示
3、導(dǎo)入需要用到的庫(kù)
import pandas as pd
import pyecharts.options as opts
from pyecharts.charts import Scatter
在這里我們導(dǎo)入pandas庫(kù),pandas庫(kù)是數(shù)據(jù)分析中非常常用的庫(kù),用于讀取csv、xls等文件中的數(shù)據(jù)。
從pyecharts導(dǎo)入options,在生成圖表時(shí),可以根據(jù)實(shí)際情況設(shè)置這些選項(xiàng)更改外觀
4、讀取要分析的數(shù)據(jù)
下面以航空公司數(shù)據(jù)為例,分析年齡、飛行次數(shù)、飛行間隔之間的關(guān)系
data = pd.read_excel(r'航空公司數(shù)據(jù)-剔除空年齡.xlsx')
?在這里,我讀取的是xls文件,如果你需要讀取的文件為csv,那你可以參照這個(gè)寫(xiě)法:
????????????????data = pd.read_csv(r'航空公司數(shù)據(jù)-剔除空年齡.csv',encoding = 'gbk')
注意:當(dāng)目標(biāo)文件和當(dāng)前文件不在同級(jí)目錄時(shí),讀取數(shù)據(jù)時(shí)可以考慮使用絕對(duì)路徑或者在相對(duì)路徑前加上相對(duì)路徑特殊符號(hào),如:../、../../
5、檢查數(shù)據(jù)是否有問(wèn)題
data_select = data.loc[:100,['年齡','飛行次數(shù)','最大乘機(jī)時(shí)間間隔']]
data_select.isnull().sum()
?????????????????????????????????????????
loc[]切片:使用.loc[ ]第一個(gè)參數(shù)是行索引,第二個(gè)參數(shù)是列索引
pandas庫(kù)中有一個(gè)isnull()函數(shù),它可以用來(lái)判斷缺失值
其中:isnull().sum()可以用于查詢每列缺失值的數(shù)量
? ? ? ? ? ?isnull().any()可以用于判斷哪些列包含缺失值,并且在缺失值返回True,反之False。
注意:如果數(shù)據(jù)有異常值也需要對(duì)異常值進(jìn)行處理
6、將要對(duì)比數(shù)據(jù)提取出來(lái)
x = data_select['飛行次數(shù)'].tolist()
y = data_select['最大乘機(jī)時(shí)間間隔'].tolist()
z = data_select['年齡'].tolist()
x
.tolist()函數(shù)可以將數(shù)組或矩陣轉(zhuǎn)換為列表,它的返回值以list的形式出現(xiàn)
7、畫(huà)圖
color_range = ['#ffcc00','#ff7f00','#ff0000']
c = (
Scatter(init_opts=opts.InitOpts(width="800px", height="400px"))
.set_global_opts(
xaxis_opts=opts.AxisOpts(
type_="value",
splitline_opts=opts.SplitLineOpts(is_show=True),
name = '飛行次數(shù)', # 坐標(biāo)軸名稱
name_location = 'center',
name_gap = 30
),
yaxis_opts=opts.AxisOpts(
type_="value",
splitline_opts=opts.SplitLineOpts(is_show=True),
name = '最大乘機(jī)時(shí)間間隔',
name_location = 'center',
name_gap = 30
),
legend_opts = opts.LegendOpts(pos_top='5%'), # 圖示位置
)
)
for i,j,q in zip(x,y,z):
c.add_xaxis(xaxis_data = [i])
c.add_yaxis(
series_name='氣泡大?。耗挲g', # 巧用序列名稱和圖示來(lái)提示氣泡大小的含義
y_axis = [j],
symbol_size = q//3, # 根據(jù)年齡數(shù)據(jù)定義合適的氣泡大小
color = '#ff8080'
)
c.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
c.render_notebook()
在這里應(yīng)用了matplotlib模塊中的scatter函數(shù)繪制了氣泡圖,氣泡的大小代表年齡
xAxis代表坐標(biāo)系中的x軸 ,yAxis代表坐標(biāo)系中的y軸
type:坐標(biāo)軸類(lèi)型,'value'—數(shù)據(jù)軸、'time'—時(shí)間軸、'log'—對(duì)數(shù)軸、'category'—類(lèi)目軸
name:坐標(biāo)軸名稱
nameLocation:坐標(biāo)軸名稱的位置
for in zip():并行遍歷,zip()函數(shù)可以將多個(gè)序列打包在一起,然后同時(shí)遍歷它們
label_opts:標(biāo)簽配置項(xiàng)
color:配置顏色
is_show:是否顯示標(biāo)簽(True 、Flase)
render_notebook:直接調(diào)用render_notebook方法可以隨時(shí)隨地的渲染圖表
還有更多的配置項(xiàng)可以查看官網(wǎng)文檔
二、三維散點(diǎn)圖的繪制
1、什么是三維散點(diǎn)圖?
三維散點(diǎn)圖可以反映三個(gè)數(shù)值之間的關(guān)系,他是一個(gè)立體的圖形,我們可以理解為將氣泡圖的三維數(shù)據(jù)繪制到三維坐標(biāo)系,就形成了三維散點(diǎn)圖。
在這里,用的數(shù)據(jù)與氣泡圖的一樣,以航空公司數(shù)據(jù)為例,分析年齡、飛行次數(shù)、飛行間隔之間的關(guān)系,所以不再展示數(shù)據(jù)的處理
2、導(dǎo)入需要用到的數(shù)據(jù)庫(kù)
import pyecharts.options as opts
from pyecharts.charts import Scatter3D
3、畫(huà)圖
c = (
Scatter3D()
.add(
'',
data = [[i,j,k] for i,j,k in zip(x,y,z)], # 數(shù)據(jù):二維數(shù)組
xaxis3d_opts=opts.Axis3DOpts( # x軸配置
name='飛行次數(shù)',
type_="value",
),
yaxis3d_opts=opts.Axis3DOpts( # y軸配置
name='最大乘機(jī)時(shí)間間隔',
type_="value",
),
zaxis3d_opts=opts.Axis3DOpts( # z軸配置
name='年齡',
type_="value",
),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
max_= max(z),
range_color=[
"#1710c0",
"#0b9df0",
"#00fea8",
"#00ff0d",
"#f5f811",
"#f09a09",
"#fe0300",
],
),
)
)
c.render_notebook()
三維散點(diǎn)圖的第三條數(shù)據(jù)展現(xiàn)在z軸上,通過(guò)對(duì)z軸的數(shù)據(jù)進(jìn)行顏色設(shè)置,展現(xiàn)出年齡的大小,與氣泡圖不同,氣泡圖是表現(xiàn)在氣泡的顏色和大小上。
name:坐標(biāo)軸名稱
type:坐標(biāo)軸類(lèi)型,'value'—數(shù)據(jù)軸、'time'—時(shí)間軸、'log'—對(duì)數(shù)軸、'category'—類(lèi)目軸
color:配置顏色
render_notebook:直接調(diào)用render_notebook方法可以隨時(shí)隨地的渲染圖表
還有更多的配置項(xiàng)可以查看官網(wǎng)文檔:
相關(guān)配置https://gallery.pyecharts.org/#/Scatter3D/scatter3d
三、多重柱形圖的繪制
1、什么是多重柱形圖?
多組柱形圖也叫作簇狀柱形圖,它是用來(lái)展現(xiàn)某個(gè)分類(lèi)下多個(gè)數(shù)據(jù)的對(duì)比。
2、效果圖展示
3、導(dǎo)入需要用到的庫(kù)
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Bar
4、讀取要分析的數(shù)據(jù)
data_user = pd.read_excel(r'新用戶表.xlsx')
5、分組聚合
result = data_user.groupby(by=['性別','城市'])['姓名'].count()
result_man = result['男']
result_woman = result['女']
result_woman
對(duì)數(shù)據(jù)內(nèi)部進(jìn)行分組處理時(shí),可以通過(guò)pandas下的groupby()函數(shù)來(lái)解決。
count() 方法用于統(tǒng)計(jì)字符串里某個(gè)字符或子字符串出現(xiàn)的次數(shù)。
result()通常用于存儲(chǔ)函數(shù)或方法的返回值
6、遍歷
[i for i in result_man.index]
y1 = result_man.tolist()
y2 = result_woman.tolist()
用for i in x的所有遍歷結(jié)果i來(lái)組成一個(gè)新的列表
tolist()可以將數(shù)組作為(可能是嵌套的)列表返回。
7、畫(huà)圖
# 數(shù)據(jù)類(lèi)型的轉(zhuǎn)換
x = [i for i in result_man.index] # 轉(zhuǎn)換成list對(duì)象
y1 = result_man.tolist()
y2 = result_woman.tolist()
bar = (
Bar(
init_opts=opts.InitOpts(width='600px',height='400px') # 初始化配置項(xiàng)
)
.add_xaxis(x)
.add_yaxis("男",y1,color = 'pink')
.add_yaxis("女", # 圖示名稱
y2, # 數(shù)據(jù)
color = 'skyblue',
gap='0%' # 柱子之間的間隔
)
# .set_colors([ "#00ff00", "#ffcc00"]) # 另一種顏色設(shè)置方法
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例",
subtitle="我是副標(biāo)題"
)
)
)
從pyecharts.charts中調(diào)用Bar柱狀圖
add_xaxis() 添加x軸坐標(biāo)
add_yaxis() 添加y軸坐標(biāo)
還有更多的配置項(xiàng)可以查看官網(wǎng)文檔:
相關(guān)配置https://gallery.pyecharts.org/#/Bar/bar_base_dict_config文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-740388.html
四、總結(jié)
在這里簡(jiǎn)單的介紹了氣泡圖、三維散點(diǎn)圖和多重柱形圖,總的來(lái)說(shuō),通過(guò)數(shù)據(jù)可視化可以很直觀的了解多數(shù)據(jù)集,增加了數(shù)據(jù)展示的可讀性和信息量,今天的的分享就到這里了,希望能夠給你帶來(lái)幫助。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-740388.html
到了這里,關(guān)于數(shù)據(jù)可視化——用python繪制氣泡圖、三維散點(diǎn)圖、多重柱形圖案例的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!