您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python pyecharts怎么繪制條形圖的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python pyecharts怎么繪制條形圖文章都會有所收獲,下面我們一起來看看吧。
pyecharts是一個由百度開源的數(shù)據(jù)可視化,憑借著良好的交互性,精巧的圖表設計,得到了眾多開發(fā)者的認可。而Python 是一門富有表達力的語言,很適合用于數(shù)據(jù)處理。當數(shù)據(jù)分析遇上數(shù)據(jù)可視化時,pyecharts誕生了。Echarts是用JS來寫的,而我們使用pyecharts則可以使用Python來調(diào)用里面的API。
優(yōu)點:
簡潔的 API 設計,使用如絲滑般流暢,支持鏈式調(diào)用
囊括了 30+ 種常見圖表,應有盡有
支持主流 Notebook環(huán)境,Jupyter Notebook 和 JupyterLab
可輕松集成至 Flask,Django 等主流 Web 框架
高度靈活的配置項,可輕松搭配出精美的圖表
多達 400+地圖文件以及原生的百度地圖,為地理數(shù)據(jù)可視化提供強有力的支持。
安裝:
pip install pyecharts
Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) # 第一種 Bar({"theme": ThemeType.MACARONS}) # 第二種
import os from matplotlib import pyplot as plt from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.commons.utils import JsCode from pyecharts.globals import ThemeType list1=cnbodfsort['REGION'].tolist() list2=cnbodfsort['PRICE'].tolist() list3=cnbodfsort['PERSONS'].tolist() c = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(list1) .add_yaxis("票價", list2, stack="stack1", category_gap="50%") .add_yaxis("人次", list3, stack="stack1",category_gap="50%") .set_series_opts( label_opts=opts.LabelOpts( position="right", formatter=JsCode( "function(x){return Number(x.data).toFixed(2);}" ), ) ) .set_global_opts( xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)), title_opts=opts.TitleOpts(title='中國電影票房',subtitle='按地區(qū)比較票價與人次') ) ) # c.render("cnbo1.html") # 生成html圖片 # os.system("cnbo01.html") # 執(zhí)行完代碼直接跳出來圖片 c.render_notebook() # 直接在代碼區(qū)域展示圖片
使用這段代碼會隨機調(diào)用系統(tǒng)的樣例參數(shù):
.add_xaxis(Faker.choose())
from pyecharts.faker import Faker list1=cnbodfsort['REGION'].tolist() list2=cnbodfsort['PRICE'].tolist() list3=cnbodfsort['PERSONS'].tolist() c = ( Bar({"theme": ThemeType.MACARONS}) ### 配置好看的圖表主題?。?! .add_xaxis(Faker.choose()) ### 這句話表示使用隨機的后臺樣例數(shù)據(jù) .add_yaxis("票價", list2, stack="stack1", category_gap="50%") .add_yaxis("人次", list3, stack="stack1",category_gap="50%") .set_series_opts( label_opts=opts.LabelOpts( position="right", formatter=JsCode( "function(x){return Number(x.data).toFixed(2);}" ), ) ) .set_global_opts( xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)), title_opts={"text":"樣例數(shù)據(jù)","subtext":"使用Faker.choose()"} ) ) c.render("cnbo1.html") # 生成html圖片 # os.system("cnbo1.html") # 執(zhí)行完代碼直接跳出來圖片 c.render_notebook() # 直接在代碼區(qū)域展示圖片
datazoom_opts=opts.DataZoomOpts()
表示可以滑動的滾動條:
list1=cnbodfsort['REGION'].tolist() list2=cnbodfsort['PRICE'].tolist() list3=cnbodfsort['PERSONS'].tolist() c = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT)) .add_xaxis(list1) .add_yaxis("票價", list2, stack="stack1", category_gap="50%") .add_yaxis("人次", list3, stack="stack1",category_gap="50%") .set_series_opts( label_opts=opts.LabelOpts( position="right", formatter=JsCode( "function(x){return Number(x.data).toFixed(2);}" ), ) ) .set_global_opts( xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)), title_opts=opts.TitleOpts(title='中國電影票房',subtitle='按地區(qū)比較票價與人次'), brush_opts=opts.BrushOpts() ,### 使用這個可以使圖片的右上角多出來一些工具 datazoom_opts=opts.DataZoomOpts(), ### 可以使最下面多出滾動條 ) ) c.render("cnbo2.html") # 生成html圖片 # os.system("cnbo01.html") # 執(zhí)行完代碼直接跳出來圖片 c.render_notebook() # 直接在代碼區(qū)域展示圖片
根據(jù)鼠標來放大與縮小的效果:
from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.faker import Faker c = ( Bar() .add_xaxis(Faker.days_attrs) .add_yaxis("商家A", Faker.days_values, color=Faker.rand_color()) .set_global_opts( title_opts=opts.TitleOpts(title="Bar-DataZoom(inside)"), datazoom_opts=opts.DataZoomOpts(type_="inside"), ) .render("bar_datazoom_inside.html") )
list1=cnbodfsort['REGION'].tolist() list2=cnbodfsort['PRICE'].tolist() list3=cnbodfsort['PERSONS'].tolist() c = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.HALLOWEEN)) .add_xaxis(list1) .add_yaxis("票價", list2, stack="stack1", category_gap="50%") .add_yaxis("人次", list3, stack="stack1",category_gap="50%") .set_series_opts( label_opts=opts.LabelOpts( position="right", formatter=JsCode( "function(x){return Number(x.data).toFixed(2);}" ), ), markpoint_opts=opts.MarkPointOpts( ######### data=[ opts.MarkPointItem(type_="max", name="最大值"), opts.MarkPointItem(type_="min", name="最小值"), opts.MarkPointItem(type_="average", name="平均值"), ] ),######### ) .set_global_opts( xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)), title_opts=opts.TitleOpts(title='中國電影票房',subtitle='按地區(qū)比較票價與人次'), brush_opts=opts.BrushOpts() ,### 使用這個可以使圖片的右上角多出來一些工具 datazoom_opts=opts.DataZoomOpts(orient='vertical'), ) ) c.render("cnbo2.html") # 生成html圖片 # os.system("cnbo01.html") # 執(zhí)行完代碼直接跳出來圖片 c.render_notebook() # 直接在代碼區(qū)域展示圖片
list1=cnbodfsort['REGION'].tolist() list2=cnbodfsort['PRICE'].tolist() list3=cnbodfsort['PERSONS'].tolist() c = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK)) .add_xaxis(list1) .add_yaxis("票價", list2, stack="stack1", category_gap="50%") .add_yaxis("人次", list3, stack="stack1",category_gap="50%") .set_series_opts( label_opts=opts.LabelOpts( position="right", formatter=JsCode( "function(x){return Number(x.data).toFixed(2);}" ), ) ) .set_global_opts( xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)), title_opts=opts.TitleOpts(title='中國電影票房',subtitle='按地區(qū)比較票價與人次'), brush_opts=opts.BrushOpts() ,### 使用這個可以使圖片的右上角多出來一些工具 datazoom_opts=opts.DataZoomOpts(orient='vertical'), ) ) c.render("cnbo2.html") # 生成html圖片 # os.system("cnbo01.html") # 執(zhí)行完代碼直接跳出來圖片 c.render_notebook() # 直接在代碼區(qū)域展示圖片
colors=['#5793f3','#d14a61','#675bba'] legend_list=['票房','人次','價格','評價'] list1=cnbodfsort['REGION'].tolist() list2=cnbodfsort['PRICE'].tolist() list3=cnbodfsort['PERSONS'].tolist() list4=cnbodfsort['BO'].tolist() list5=cnbodfsort['points'].tolist() c = ( Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK,width="1600px",height="600px")) .add_xaxis(list1) .add_yaxis("評分", list5,yaxis_index=0,category_gap="50%",color=colors[2]) .add_yaxis("票價", list2,yaxis_index=0,category_gap="50%",color=colors[0]) .add_yaxis("人次", list3,yaxis_index=0,category_gap="50%",color=colors[1]) .set_series_opts( label_opts=opts.LabelOpts( position="top", formatter=JsCode( "function(x){return Number(x.data).toFixed(2);}" ), ), markpoint_opts=opts.MarkPointOpts( data=[ opts.MarkPointItem(type_="max", name="最大值"), opts.MarkPointItem(type_="min", name="最小值"), opts.MarkPointItem(type_="average", name="平均值"), ] ), ) .extend_axis( yaxis=opts.AxisOpts( name="票房", type_="value", min_=1000, max_=150000, interval=10000, position="right", axislabel_opts=opts.LabelOpts(formatter="{value} 萬") ) ) .extend_axis( yaxis=opts.AxisOpts( name="評價", type_="value", min_=0, max_=11, interval=1, position="left", axislabel_opts=opts.LabelOpts(formatter="{value} 點"), axisline_opts=opts.AxisLineOpts( linestyle_opts=opts.LineStyleOpts(color=colors[2]) ), splitline_opts=opts.SplitLineOpts( is_show=True,linestyle_opts=opts.LineStyleOpts(opacity=1) ), ) ) .set_global_opts( yaxis_opts=opts.AxisOpts( type_="value", name="票價", min_=10, max_=70, position="right", offset=80, axisline_opts=opts.AxisLineOpts( linestyle_opts=opts.LineStyleOpts(color=colors[0]) ), axislabel_opts=opts.LabelOpts(formatter="{value} 元"), ), tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"), datazoom_opts=opts.DataZoomOpts(orient='vertical'), toolbox_opts=opts.ToolboxOpts(pos_left='120%'), legend_opts=opts.LegendOpts(is_show=False), ) ) line = ( Line() .add_xaxis(xaxis_data=x_data) .add_yaxis( series_name="票房", yaxis_index=1, y_axis=list4, label_opts=opts.LabelOpts(is_show=False), ) ) c.render_notebook() # 直接在代碼區(qū)域展示圖片
雙Y軸:
# Bar - Bar_histogram from pyecharts.options.global_options import ThemeType from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.faker import Faker c = ( Bar({"theme":ThemeType.DARK}) .add_xaxis(cnboregiongb.index.tolist()) .add_yaxis("數(shù)量", cnboregiongb.values.tolist(), category_gap=0, color=Faker.rand_color()) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方圖")) ) c.render_notebook()
關(guān)于“Python pyecharts怎么繪制條形圖”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Python pyecharts怎么繪制條形圖”知識都有一定的了解,大家如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。