100天精通Python(可视化篇)——第94天:Pyecharts绘制多种炫酷散点图(参数说明+代码实战)
文章目錄
- 專欄導讀
- 一、Scatter(散點圖)
- 1. add函數
- 2. 數據項
- 二、基礎氣泡圖
- 三、多維度散點圖
- 四、添加分割線
- 五、動態漣漪散點圖
- 六、不同形狀散點圖
- 七、3D散點圖
專欄導讀
🔥🔥本文已收錄于《100天精通Python從入門到就業》:本專欄專門針對零基礎和需要進階提升的同學所準備的一套完整教學,從0到100的不斷進階深入,后續還有實戰項目,輕松應對面試,專欄訂閱地址:https://blog.csdn.net/yuan2019035055/category_11466020.html
- 優點:訂閱限時9.9付費專欄進入千人全棧VIP答疑群,作者優先解答機會(代碼指導、遠程服務),群里大佬眾多可以抱團取暖(大廠內推機會)
- 專欄福利:簡歷指導、招聘內推、每周送實體書、80G全棧學習視頻、300本IT電子書:Python、Java、前端、大數據、數據庫、算法、爬蟲、數據分析、機器學習、面試題庫等等
一、Scatter(散點圖)
1. add函數
在Pyecharts中,Scatter類的add函數有以下參數:
- name:str,數據系列的名稱。
- xaxis_data:Sequence,x軸的數據。
- yaxis_data:Sequence,y軸的數據。
- symbol_size:Union[int, Sequence],散點的大小。如果為int類型,則所有散點的大小都相同;如果為Sequence類型,則可以為每個散點指定不同的大小。
- label_opts:LabelOpts,散點的標簽配置項。
- tooltip_opts:TooltipOpts,散點的提示框配置項。
- itemstyle_opts:ItemStyleOpts,散點的圖形樣式配置項。
- encode:Dict,數據編碼配置項。用于指定x軸和y軸的數據在數據源中的位置,例如:{“x”: 0, “y”: 1}。
其中,name、xaxis_data和yaxis_data參數是必需的,其他參數都是可選的。
示例代碼:
scatter = Scatter() scatter.add(name="散點圖",xaxis_data=[1, 2, 3, 4, 5],yaxis_data=[10, 20, 30, 40, 50],symbol_size=10,label_opts=opts.LabelOpts(formatter="{@[2]}"),tooltip_opts=opts.TooltipOpts(formatter="{@[2]}"),itemstyle_opts=opts.ItemStyleOpts(color="red"),encode={"x": 0, "y": 1}, )這個例子創建了一個Scatter對象,然后使用add函數添加了一個散點數據系列,指定了x軸和y軸的數據,散點的大小為10,標簽格式化為第三個數據,提示框格式化為第三個數據,散點的顏色為紅色,數據編碼指定x軸數據在第0個位置,y軸數據在第1個位置。
2. 數據項
class ScatterItem(name: Union[str, Numeric] = None, # 數據系列的名稱,可以是字符串或數字value: Union[str, Numeric] = None, # 散點的值,可以是字符串或數字symbol: Optional[str] = None, # 散點的標記符號,可選參數,默認為Nonesymbol_size: Union[Sequence[Numeric], Numeric] = None, # 散點的大小,可以是數字或數字序列symbol_rotate: Optional[Numeric] = None, # 散點的旋轉角度,可選參數,默認為Nonesymbol_keep_aspect: bool = False, # 散點的寬高比是否保持一致,可選參數,默認為Falsesymbol_offset: Optional[Sequence] = None, # 散點的偏移量,可選參數,默認為Nonelabel_opts: Union[LabelOpts, dict, None] = None, # 散點的標簽配置項,可以是LabelOpts對象、字典或Noneitemstyle_opts: Union[ItemStyleOpts, dict, None] = None, # 散點的圖形樣式配置項,可以是ItemStyleOpts對象、字典或Nonetooltip_opts: Union[TooltipOpts, dict, None] = None, # 散點的提示框配置項,可以是TooltipOpts對象、字典或None )這個類是用于表示散點圖中的每個散點數據項。參數的具體含義已在注釋中進行了解釋。
二、基礎氣泡圖
要使用Pyecharts繪制普通氣泡圖,可以按照以下步驟進行鏈式寫法的繪制:
完整代碼示例:
from pyecharts import options as opts from pyecharts.charts import Scatter# 數據 x_data = [1, 2, 3, 4, 5] y_data = [10, 20, 30, 40, 50]# 創建Scatter實例 scatter = Scatter().set_global_opts(title_opts=opts.TitleOpts(title="普通氣泡圖") )# 添加數據系列 scatter.add_xaxis(x_data) scatter.add_yaxis("", y_data)# 設置氣泡的大小和顏色 scatter.set_series_opts(label_opts=opts.LabelOpts(is_show=False),itemstyle_opts=opts.ItemStyleOpts(color="rgba(255, 0, 0, 0.6)"),symbol_size=20 )# 渲染圖表 scatter.render_notebook() scatter.render("scatter.html")運行完上述代碼后,運行結果:
三、多維度散點圖
# 導入需要的模塊 from pyecharts.charts import Scatter from pyecharts.faker import Faker# 創建Scatter對象 scatter = (Scatter()# 添加x軸數據.add_xaxis(Faker.choose())# 添加y軸數據,系列名稱為"商家A".add_yaxis("商家A", Faker.values())# 添加y軸數據,系列名稱為"商家B".add_yaxis("商家B", Faker.values())# 設置全局配置項.set_global_opts(# 設置標題title_opts=opts.TitleOpts(title="多維度散點圖"),# 設置視覺映射配置項,類型為"size",最大值為150,最小值為20visualmap_opts=opts.VisualMapOpts(type_="size", max_=150, min_=20),) )# 在Jupyter Notebook中渲染圖表 scatter.render_notebook()運行結果:
四、添加分割線
通過散點圖與分割線相互結合:
import numpy as np from pyecharts import options as opts from pyecharts.charts import Scatter# 生成隨機數據 np.random.seed(0) data = np.random.randn(100, 4)# 使用鏈式寫法繪制散點圖 scatter = (Scatter().add_xaxis(list(range(100))).add_yaxis("A", data[:, 0].tolist()).add_yaxis("B", data[:, 1].tolist()).add_yaxis("C", data[:, 2].tolist()).add_yaxis("D", data[:, 3].tolist()).set_global_opts(title_opts=opts.TitleOpts(title="多維度散點圖"),xaxis_opts=opts.AxisOpts(name="Index"),yaxis_opts=opts.AxisOpts(name="Value"),).set_series_opts(label_opts=opts.LabelOpts(is_show=False)) )# 添加分割線 line = (Scatter().add_xaxis(list(range(100))).add_yaxis("Line", [0] * 100, label_opts=opts.LabelOpts(is_show=False)).set_series_opts(symbol_size=0,linestyle_opts=opts.LineStyleOpts(type_="dashed", color="red"),label_opts=opts.LabelOpts(is_show=False),) )scatter.render_notebook()運行結果:
五、動態漣漪散點圖
# 導入所需的類和函數 from pyecharts import options as opts from pyecharts.charts import EffectScatter from pyecharts.faker import Faker# 創建 EffectScatter 對象,并設置 x 軸數據和 y 軸數據 c = (EffectScatter().add_xaxis(Faker.choose()) # 添加 x 軸數據,這里使用了 Faker.choose() 生成隨機數據.add_yaxis("", Faker.values()) # 添加 y 軸數據,這里使用了 Faker.values() 生成隨機數據.set_global_opts(title_opts=opts.TitleOpts(title="動態漣漪散點圖")) # 設置全局配置,標題為"動態漣漪散點圖" )# 在 Jupyter Notebook 中展示 c.render_notebook()運行結果:
六、不同形狀散點圖
在下面的代碼中,首先創建了一個Scatter對象,然后通過set_global_opts()方法設置了圖表的標題和大小,以及圖表的顏色映射范圍。接下來,通過add_xaxis()方法設置x軸的數據,通過add_yaxis()方法分別添加了四個系列的散點圖數據,并設置了不同的形狀和大小。
from pyecharts import options as opts from pyecharts.charts import Scatter# 創建散點圖對象 scatter = Scatter()# 設置圖表標題和大小 scatter.set_global_opts(title_opts=opts.TitleOpts(title="不同形狀散點圖"),visualmap_opts=opts.VisualMapOpts(type_="size", max_=50, min_=20),legend_opts=opts.LegendOpts(pos_right="10%", pos_bottom="15%"), )# 添加散點圖數據并設置樣式 scatter.add_xaxis(['A', 'B', 'C', 'D', 'E']) scatter.add_yaxis("圓形", [10, 20, 30, 40, 50], symbol_size=10) scatter.add_yaxis("矩形", [20, 30, 40, 50, 60], symbol='rect', symbol_size=15) scatter.add_yaxis("三角形", [30, 40, 50, 60, 70], symbol='triangle', symbol_size=20) scatter.add_yaxis("星形", [40, 50, 60, 70, 80], symbol='star', symbol_size=25)# 在 Jupyter Notebook 中展示 scatter.render_notebook()運行結果:
在scatter.add_yaxis()函數中,symbol參數用于設置散點圖的形狀。下面是symbol參數的全部參數說明:
- ‘circle’:圓形
- ‘rect’:矩形
- ‘roundRect’:圓角矩形
- ‘triangle’:三角形
- ‘diamond’:菱形
- ‘pin’:水滴形
- ‘arrow’:箭頭形
- ‘none’:無形狀,即不顯示形狀,只顯示散點
另外,symbol參數還可以是一個自定義的路徑字符串,表示使用自定義的形狀圖片,例如’svg://path/to/custom_symbol.svg’。
在使用scatter.add_yaxis()函數時,可以根據需要選擇合適的形狀參數來設置散點圖的形狀。
七、3D散點圖
在上述代碼中,scatter_data是一個包含多個散點坐標的列表,每個散點坐標由三個值表示(x、y、z)。
通過以上步驟,就可以使用Pyecharts的鏈式寫法繪制3D散點圖并將結果輸出到Jupyter Notebook中。圖表將直接在Notebook中渲染和顯示,無需額外的保存和導出操作。
運行結果:
《ChatGPT時代+powerBI》
本書從ChatGPT等自然語言大模型基礎知識講起,重點介紹了ChatGPT等語言大模型在生活中的實際應用,讓每一個人都能了解未來的生活和工作。
本書通過實際案例和操作技巧,使讀者能夠快速上手并靈活運用ChatGPT技術,提升職場競爭力,以通俗易懂的語言解釋ChatGPT的原理和應用,即使是職場新手也能輕松掌握。
同時結合Excel Home全新講授的《Power BI數據分析與可視化實戰》,用chatGPT使讀者可以從煩瑣的數據處理和報表編制中解脫,快速從海量數據中抽取關鍵信息并制作令人驚艷的交互式商業報告
抽獎送書老規矩(不點贊收藏中獎無效):注意記得關注博主不然中獎了還不知道!!!
- 1. 點贊收藏文章
- 2. 評論區留言:人生苦短,我用Python!!!(留言才能進入獎池,每人最多留言三條)
- 3. 周六八點爬蟲抽獎5人
- 《chatGPT時代全能應用一本通》 當當購買鏈接 :http://product.dangdang.com/29564315.html
- 《Power BI數據分析與可視化實戰》 當當購買鏈接:http://product.dangdang.com/29473790.html
總結
以上是生活随笔為你收集整理的100天精通Python(可视化篇)——第94天:Pyecharts绘制多种炫酷散点图(参数说明+代码实战)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java初中级工程师面试笔试题目及心得(
- 下一篇: python的高级应用