在資料視覺化領域,堆疊長條圖是一種常見的視覺化方式。它將多個資料系列繪製成一個條形,每個條形由多個子項組成,每個子項對應一個資料系列,在同一座標系下進行展示。這種圖表可以用來比較不同類別或資料系列的總大小、每個類別或資料系列的組成比例等。在Python中,我們可以使用ECharts庫來繪製堆疊柱狀圖,而且該庫具有豐富的可自訂性和互動性。
一、安裝和導入ECharts庫
在使用ECharts庫前,我們需要先安裝它。可以透過pip指令進行安裝:
pip install pyecharts
安裝完成後,我們需要在Python腳本中導入所需元件,例如:
from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.faker import Faker
二、繪製堆疊柱狀圖
#接下來,我們來看一個實例,在該實例中,我們將使用ECharts庫繪製一幅堆疊柱狀圖,以顯示每個月的銷售情況,其中每個柱表示一個月的銷售額,每個柱由不同商品類別的銷售額組成。
首先,我們需要準備資料。在這個實例中,我們隨機產生了12個月份的銷售額數據,每個月份下都包括了3個商品類別的銷售額。程式碼如下:
import random # 随机生成12个月份的销售额数据 months = [str(i) + "月" for i in range(1, 13)] type1_sales = [random.randint(100, 1000) for _ in range(12)] type2_sales = [random.randint(100, 1000) for _ in range(12)] type3_sales = [random.randint(100, 1000) for _ in range(12)]
接下來,我們將資料加入圖表並進行自訂。程式碼如下:
# 实例化柱状图 bar = ( Bar() # 添加X轴数据 .add_xaxis(months) # 添加Y轴数据,并使用整数值格式化标签 .add_yaxis("类别1", type1_sales, stack="stack1", label_opts=opts.LabelOpts(formatter="{value}元")) .add_yaxis("类别2", type2_sales, stack="stack1", label_opts=opts.LabelOpts(formatter="{value}元")) .add_yaxis("类别3", type3_sales, stack="stack1", label_opts=opts.LabelOpts(formatter="{value}元")) # 设置全局参数 .set_global_opts( # 设置标题 title_opts=opts.TitleOpts(title="堆叠柱状图"), # 设置X轴标签旋转角度 xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)), # 设置Y轴的名称和最大值 yaxis_opts=opts.AxisOpts(name="销售额", max_=3000), # 设置数据标签 series_opts=opts.SeriesOpts( itemstyle_opts=opts.ItemStyleOpts(border_color="black", border_width=0), label_opts=opts.LabelOpts(is_show=True, position="inside", color="white") ) ) )
在上述程式碼中,我們實例化了一個長條圖,並使用add_xaxis()將X軸資料加入圖表。接著,我們使用add_yaxis()分別將三種類型的銷售額資料加入圖表中。由於我們需要將三種類型的銷售額堆疊在一起,因此我們將它們都設定為stack1。同時,我們使用label_opts設定了標籤的格式化方式。最後,我們使用set_global_opts()來設定圖表的全域參數,包括標題、X軸標籤旋轉角度、Y軸的名稱和最大值,以及資料標籤的設定。
最後,我們使用render()將結果視覺化,並使用render_notebook()在Jupyter Notebook中顯示結果,或使用render(' filename.html')將結果儲存為HTML檔案。代碼如下:
# 在Jupyter Notebook中显示图表 bar.render_notebook() # 将图表保存为HTML文件 bar.render("bar_chart.html")
運行以上代碼後,我們將得到一張清晰明了的堆疊柱狀圖,該圖顯示了每個月份的銷售情況,並能夠反映出不同商品類別的銷售額的佔比情況。
三、總結
本文介紹如何使用ECharts庫中的Bar元件來繪製堆疊柱狀圖,並使用具體程式碼範例展示如何準備資料、如何將資料加入圖表中以及如何進行圖表的客製化和保存。當然,在實際操作中,可能還需要對特定組件的參數進行更細緻的設定和調整,以滿足不同的視覺化需求。但整體而言,ECharts為Python用戶提供了一個強大且易於使用的資料視覺化工具,有助於更好地呈現在資料分析過程中所得到的結果。
以上是如何在Python中使用ECharts繪製堆疊柱狀圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!