<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
相信有很多的小夥伴看了如此多個案例之後肯定有所發現,每一個案例都對應著每一個設定,如果是官方設定檔案,說實話看起來真的很難,這樣通過案例實現來解決各種引數的設定,我覺得有一定的參考價值和學習意義,正所謂“磨刀不誤砍工”,如何把視覺化做的爐火純青,任重而道遠也!
說明:有些資料是呼叫相關庫資源:from pyecharts.faker import Faker,需要自己新增資料,非常簡單,這個不用擔心。
你覺得上述圖形用的上嗎,我估計在平時的小場景可能用不到,但是做股票好像不錯喲!
有時候我們不想要把所有的資料標籤都顯示出來,因為這樣太繁雜了,資料視覺化的原則就是在炫酷的同時把圖表準確的呈現在使用者的面前,這就需要我們按照特定的場景選擇特定的圖形。
import pyecharts.options as opts from pyecharts.charts import Line from pyecharts.faker import Faker from pyecharts.globals import ThemeType x, y = Faker.choose(), Faker.values()#更改資料集即可 c = ( Line({"theme":ThemeType.MACARONS})#不新增預設紅色 .add_xaxis(x) .add_yaxis( "商家A", y, markpoint_opts=opts.MarkPointOpts( data=[opts.MarkPointItem(name="自定義標記點", coord=[x[2], y[2]], value=y[2])] # 這裡定義要顯示的標籤資料 ), ) .set_global_opts(title_opts=opts.TitleOpts(title="標題"), xaxis_opts=opts.AxisOpts( name='類別', name_location='middle', name_gap=30, # 標籤與軸線之間的距離,預設為20,最好不要設定20 name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # 標籤字型大小 )), yaxis_opts=opts.AxisOpts( name='數量', name_location='middle', name_gap=30, name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # font_weight='bolder', )), # toolbox_opts=opts.ToolboxOpts() # 工具選項 ) .render("自定義標籤.html") )
此模板可以作為一天用電量的應用,也可以在此基礎上進行更改,形成其他類別的折線圖,只是提供模板,你可以根據自己的應用場景來解決問題。
import pyecharts.options as opts from pyecharts.charts import Line x_data = [ "00:00", "01:15", "02:30", "03:45", "05:00", "06:15", "07:30", "08:45", "10:00", "11:15", "12:30", "13:45", "15:00", "16:15", "17:30", "18:45", "20:00", "21:15", "22:30", "23:45", ] y_data = [ 300, 280, 250, 260, 270, 300, 550, 500, 400, 390, 380, 390, 400, 500, 600, 750, 800, 700, 600, 400, ] ( Line(init_opts=opts.InitOpts(width="1200px", height="600px")) .add_xaxis(xaxis_data=x_data) .add_yaxis( series_name="用電量", y_axis=y_data, is_smooth=True, label_opts=opts.LabelOpts(is_show=False), linestyle_opts=opts.LineStyleOpts(width=2), ) .set_global_opts( title_opts=opts.TitleOpts(title="一天用電量分佈", subtitle="純屬虛構"), tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"), xaxis_opts=opts.AxisOpts(boundary_gap=False), yaxis_opts=opts.AxisOpts( axislabel_opts=opts.LabelOpts(formatter="{value} W"), splitline_opts=opts.SplitLineOpts(is_show=True), ), visualmap_opts=opts.VisualMapOpts( is_piecewise=True, dimension=0, pieces=[ {"lte": 6, "color": "green"}, {"gt": 6, "lte": 8, "color": "red"}, {"gt": 8, "lte": 14, "color": "green"}, {"gt": 14, "lte": 17, "color": "red"}, {"gt": 17, "color": "green"}, ], ), ) .set_series_opts( markarea_opts=opts.MarkAreaOpts( data=[ opts.MarkAreaItem(name="早高峰", x=("07:30", "10:00")), opts.MarkAreaItem(name="晚高峰", x=("17:30", "21:15")), ] ) ) .render("用電量折線圖.html") )
import pyecharts.options as opts from pyecharts.charts import Line ( Line(init_opts=opts.InitOpts(width="1200px", height="600px")) .add_xaxis(xaxis_data=["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]) .add_yaxis( series_name="", y_axis=[120, 200, 150, 80, 70, 110, 130], symbol="triangle", symbol_size=20, linestyle_opts=opts.LineStyleOpts(color="green", width=4, type_="dashed"), label_opts=opts.LabelOpts(is_show=False), itemstyle_opts=opts.ItemStyleOpts( border_width=3, border_color="yellow", color="blue" ), ) .set_global_opts( xaxis_opts=opts.AxisOpts(type_="category", name='類別', name_location='middle', name_gap=30, # 標籤與軸線之間的距離,預設為20,最好不要設定20 name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # 標籤字型大小 ) ), yaxis_opts=opts.AxisOpts( type_="value", axistick_opts=opts.AxisTickOpts(is_show=True), splitline_opts=opts.SplitLineOpts(is_show=True), ), tooltip_opts=opts.TooltipOpts(is_show=False), ) .render("斷點折線圖.html") )
有時候折線圖裡面的資料太多了,但是我們想要一眼就直觀的看到資料的最低最高是多少,雖然pyecharts可以把滑鼠放在點上就會顯示,但是如果做出PPT或者圖片,那麼就有點不現實了。
import pyecharts.options as opts from pyecharts.charts import Line from pyecharts.faker import Faker c = ( Line() .add_xaxis(Faker.choose()) .add_yaxis( "商家A", Faker.values(), label_opts=opts.LabelOpts(is_show=False), markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="min"), opts.MarkPointItem(type_="max")]), ) .add_yaxis( "商家B", Faker.values(), label_opts=opts.LabelOpts(is_show=False), markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="min"), opts.MarkPointItem(type_="max")]), ) .set_global_opts(title_opts=opts.TitleOpts(title="標題"), xaxis_opts=opts.AxisOpts( name='類別', name_location='middle', name_gap=30, # 標籤與軸線之間的距離,預設為20,最好不要設定20 name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # 標籤字型大小 )), yaxis_opts=opts.AxisOpts( name='數量', name_location='middle', name_gap=30, name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # font_weight='bolder', )), # toolbox_opts=opts.ToolboxOpts() # 工具選項 ) .render("雙摺線圖顯示最低最高.html") )
這個雙摺線圖可以運用在我們需要知道一類資料集裡面的平均值是多少,那麼我們就可以根據這個來設定相關引數了,下面的圖例我們沒有顯示資料,也可以顯示資料。
import pyecharts.options as opts from pyecharts.charts import Line from pyecharts.faker import Faker c = ( Line() .add_xaxis(Faker.choose()) .add_yaxis( "商家A", Faker.values(), label_opts=opts.LabelOpts(is_show=False),#允許顯示資料 markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]), ) .add_yaxis( "商家B", Faker.values(), label_opts=opts.LabelOpts(is_show=False), markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]), ) .set_global_opts(title_opts=opts.TitleOpts(title="標題"), xaxis_opts=opts.AxisOpts( name='類別', name_location='middle', name_gap=30, # 標籤與軸線之間的距離,預設為20,最好不要設定20 name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # 標籤字型大小 )), yaxis_opts=opts.AxisOpts( name='數量', name_location='middle', name_gap=30, name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # font_weight='bolder', )), # toolbox_opts=opts.ToolboxOpts() # 工具選項 ) .render("雙摺線圖顯示平均刻度.html") )
前面的圖例裡面,沒有對資料進行展示,也沒有資料標籤,這個圖例是對之前的進行改造和設計升級的。
import pyecharts.options as opts from pyecharts.charts import Line from pyecharts.faker import Faker c = ( Line() .add_xaxis(xaxis_data=Faker.choose()) .add_yaxis( "商家A", Faker.values(), symbol="triangle", symbol_size=20, linestyle_opts=opts.LineStyleOpts(color="green", width=4, type_="dashed"), itemstyle_opts=opts.ItemStyleOpts( border_width=3, border_color="yellow", color="blue" ),#可進行多維疊加 ) .set_global_opts(title_opts=opts.TitleOpts(title="標題"), xaxis_opts=opts.AxisOpts( name='類別', name_location='middle', name_gap=30, # 標籤與軸線之間的距離,預設為20,最好不要設定20 name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # 標籤字型大小 )), yaxis_opts=opts.AxisOpts( name='數量', name_location='middle', name_gap=30, name_textstyle_opts=opts.TextStyleOpts( font_family='Times New Roman', font_size=16 # font_weight='bolder', )), # toolbox_opts=opts.ToolboxOpts() # 工具選項 ) .render("斷點顯示資料.html") )
前面有一個圖形是一個曲線的折線圖,緊貼Y軸,此圖例是不緊貼的且是折線的形式。
import pyecharts.options as opts from pyecharts.charts import Line from pyecharts.faker import Faker c = ( Line() .add_xaxis(Faker.choose()) .add_yaxis("商家A", Faker.values(), areastyle_opts=opts.AreaStyleOpts(opacity=0.5)) .add_yaxis("商家B", Faker.values(), areastyle_opts=opts.AreaStyleOpts(opacity=0.5)) .set_global_opts(title_opts=opts.TitleOpts(title="標題")) .render("面積折線圖不緊貼.html") )
執行生成之後,自動旋轉。有的小夥伴很是好奇,為什麼會有這種炫酷的圖形,這種圖形是如何設計出來的,看了程式碼我們發現其實並不難,程式碼量也不是很複雜,原因就是它基於演演算法數學設計的,這也就是為什麼說有“幾何之美”的這一概念了。
到此這篇關於Python繪製折線圖視覺化神器pyecharts的文章就介紹到這了,更多相關Python pyecharts內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45