您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Python中怎么利用pyecharts實現數據可視化,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
地圖
首先導入需要的包
from pyecharts.charts import Pie ,Grid,Bar,Line from pyecharts.faker import Faker #數據包from pyecharts.charts import Map,Geo from pyecharts import options as opts from pyecharts.globals import ThemeType
OK,我現在有一個省份的一組數據,大概長這樣
locate =['合肥市', '阜陽市', '亳州市', '安慶市', '馬鞍山市', '銅陵市', '六安市', '滁州市', '池州市','蚌埠市','蕪湖市','宿州市','宣城市','淮北市','淮南市','黃山市']` data =['115','105','72','66','30','22','41','11','11','88','27','27','5','22','14','9']
這也是接觸到的需要繪制地圖的數據格式,兩個list,一個是地名,一個是每個城市對應的數據,現在執行以下代碼就可以得到安徽省的疫情地圖。
list1 = [[locate[i],data[i]] for i in range(len(locate))] #首先創建數據 map_1 = Map(init_opts=opts.InitOpts(width="400px", height="460px")) #創建地圖,其中括號內可以調整大小,也可以修改主題顏色。 map_1.add("安徽疫情", list1, maptype="安徽") #添加安徽地圖 map_1.set_global_opts( #設置全局配置項#title_opts=opts.TitleOpts(title="安徽疫情"), 添加標題 visualmap_opts=opts.VisualMapOpts(max_=120, is_piecewise=True),#最大數據范圍 并且使用分段 legend_opts=opts.LegendOpts(is_show=False), #是否顯示圖例 ) map_1.render_notebook() #直接在notebook中顯示# map_1.render('map1.html') 將地圖以html形式保存在工作目錄下
當然地圖還有很多可以自定義的配置項,選擇需要的配置項添加到對應的函數中即可。
# 數據項 (坐標點名稱,坐標點值) data_pair: Sequence, # 地圖類型,具體參考 pyecharts.datasets.map_filenames.json 文件 maptype: str = "china", # 是否選中圖例 is_selected: bool = True, # 是否開啟鼠標縮放和平移漫游。 is_roam: bool = True, # 當前視角的中心點,用經緯度表示 center: Optional[Sequence] = None, # 當前視角的縮放比例。 zoom: Optional[Numeric] = 1, # 自定義地區的名稱映射 name_map: Optional[dict] = None, # 標記圖形形狀 symbol: Optional[str] = None, # 是否顯示標記圖形 is_map_symbol_show: bool = True, # 標簽配置項,參考 `series_options.LabelOpts` label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(), # 提示框組件配置項,參考 `series_options.TooltipOpts` tooltip_opts: Union[opts.TooltipOpts, dict, None] = None, # 圖元樣式配置項,參考 `series_options.ItemStyleOpts` itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None, # 高亮標簽配置項,參考 `series_options.LabelOpts` emphasis_label_opts: Union[opts.LabelOpts, dict, None] = None, # 高亮圖元樣式配置項,參考 `series_options.ItemStyleOpts` emphasis_itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
繼續使用地圖里的數據繪制餅圖,現在想看安徽各地區疫情分布比,就可以考慮使用餅圖(玫瑰圖)。詳細代碼
map_2 = ( Pie(init_opts=opts.InitOpts(width="600px", height="500px")) 創建一個餅圖 .add( "", #圖名 [[locate[i],data[i]] for i in range(len(locate))], #添加數據 radius=["40%", "75%"], # 調整半徑 ) .set_global_opts( legend_opts=opts.LegendOpts( orient="vertical", pos_top="10%", pos_left="88%"#圖例設置 ), ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) #設置標簽 ) map_2.render_notebook() #直接在notebook中顯示#map_2.render('map2.html') #保存到本地柱狀圖
demo
c = ( Bar() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values()) #數據配置 .add_yaxis("商家B", Faker.values()) #數據配置 .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副標題")) #全局配置標題 ) c.render_notebook()通過添加配置項可以調整標題、圖例、粗細、位置、背景圖等等
# 系列數據 yaxis_data: Sequence[Numeric, opts.BarItem, dict], # 是否選中圖例 is_selected: bool = True, # 使用的 x 軸的 index,在單個圖表實例中存在多個 x 軸的時候有用。 xaxis_index: Optional[Numeric] = None, # 使用的 y 軸的 index,在單個圖表實例中存在多個 y 軸的時候有用。 yaxis_index: Optional[Numeric] = None, # 系列 label 顏色 color: Optional[str] = None, # 數據堆疊,同個類目軸上系列配置相同的 stack 值可以堆疊放置。 stack: Optional[str] = None, # 同一系列的柱間距離,默認為類目間距的 20%,可設固定值 category_gap: Union[Numeric, str] = "20%", # 不同系列的柱間距離,為百分比(如 '30%',表示柱子寬度的 30%)。# 如果想要兩個系列的柱子重疊,可以設置 gap 為 '-100%'。這在用柱子做背景的時候有用。 gap: Optional[str] = None, # 標簽配置項,參考 `series_options.LabelOpts` label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(), # 標記點配置項,參考 `series_options.MarkPointOpts` markpoint_opts: Union[opts.MarkPointOpts, dict, None] = None, # 標記線配置項,參考 `series_options.MarkLineOpts` markline_opts: Union[opts.MarkLineOpts, dict, None] = None, # 提示框組件配置項,參考 `series_options.TooltipOpts` tooltip_opts: Union[opts.TooltipOpts, dict, None] = None, # 圖元樣式配置項,參考 `series_options.ItemStyleOpts` itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
如果想要同時疊加繪制圖形可以采用參考以下方法
def two_pic() -> Bar: x = Faker.choose() #選擇數據 bar = ( #先繪制bar Bar() .add_xaxis(x) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) .set_global_opts(title_opts=opts.TitleOpts(title="Overlap-line+scatter")) ) line = ( #再添加line Line() .add_xaxis(x) .add_yaxis("商家A", Faker.values()) .add_yaxis("商家B", Faker.values()) ) bar.overlap(line) return bar two_pic().render_notebook()總結
以上就是Python中怎么利用pyecharts實現數據可視化,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。