這篇文章主要介紹了Python pyecharts怎么繪制條形圖的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python pyecharts怎么繪制條形圖文章都會有所收獲,下面我們一起來看看吧。
pyecharts是一個由百度開源的數據可視化,憑借著良好的交互性,精巧的圖表設計,得到了眾多開發者的認可。而Python 是一門富有表達力的語言,很適合用于數據處理。當數據分析遇上數據可視化時,pyecharts誕生了。Echarts是用JS來寫的,而我們使用pyecharts則可以使用Python來調用里面的API。
優點:
簡潔的 API 設計,使用如絲滑般流暢,支持鏈式調用
囊括了 30+ 種常見圖表,應有盡有
支持主流 Notebook環境,Jupyter Notebook 和 JupyterLab
可輕松集成至 Flask,Django 等主流 Web 框架
高度靈活的配置項,可輕松搭配出精美的圖表
多達 400+地圖文件以及原生的百度地圖,為地理數據可視化提供強有力的支持。
安裝:
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='按地區比較票價與人次')
)
)
# c.render("cnbo1.html") # 生成html圖片
# os.system("cnbo01.html") # 執行完代碼直接跳出來圖片
c.render_notebook() # 直接在代碼區域展示圖片
使用這段代碼會隨機調用系統的樣例參數:
.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()) ### 這句話表示使用隨機的后臺樣例數據
.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":"樣例數據","subtext":"使用Faker.choose()"}
)
)
c.render("cnbo1.html") # 生成html圖片
# os.system("cnbo1.html") # 執行完代碼直接跳出來圖片
c.render_notebook() # 直接在代碼區域展示圖片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='按地區比較票價與人次'),
brush_opts=opts.BrushOpts() ,### 使用這個可以使圖片的右上角多出來一些工具
datazoom_opts=opts.DataZoomOpts(), ### 可以使最下面多出滾動條
)
)
c.render("cnbo2.html") # 生成html圖片
# os.system("cnbo01.html") # 執行完代碼直接跳出來圖片
c.render_notebook() # 直接在代碼區域展示圖片
根據鼠標來放大與縮小的效果:
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='按地區比較票價與人次'),
brush_opts=opts.BrushOpts() ,### 使用這個可以使圖片的右上角多出來一些工具
datazoom_opts=opts.DataZoomOpts(orient='vertical'),
)
)
c.render("cnbo2.html") # 生成html圖片
# os.system("cnbo01.html") # 執行完代碼直接跳出來圖片
c.render_notebook() # 直接在代碼區域展示圖片

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='按地區比較票價與人次'),
brush_opts=opts.BrushOpts() ,### 使用這個可以使圖片的右上角多出來一些工具
datazoom_opts=opts.DataZoomOpts(orient='vertical'),
)
)
c.render("cnbo2.html") # 生成html圖片
# os.system("cnbo01.html") # 執行完代碼直接跳出來圖片
c.render_notebook() # 直接在代碼區域展示圖片
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() # 直接在代碼區域展示圖片雙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("數量", cnboregiongb.values.tolist(), category_gap=0, color=Faker.rand_color())
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方圖"))
)
c.render_notebook()
關于“Python pyecharts怎么繪制條形圖”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python pyecharts怎么繪制條形圖”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。