關於時間數據類型的可視化(pyecharts0.5.x)以及pyecharts基本使用--超級詳細

要使用pyecharts0.5.x之前,再次強調pyecharts0.5.x和pyecharts1.x的使用區別:

  • pyecharts0.5.x 中 以圖例爲主體,需要什麼就add什麼就好了,一般在add裏面直接寫需要的功能的參數就ok了。
  • pyecharts1.x中以options對象爲主體,萬物皆oop,可以通過不斷的在對象上調用方法就🆗了。

這篇是關於pycharts-0.5.x版本的可視化,如果你想使用最新版的1.7.0版本,以及分清楚這兩個版本的區別,可以具體詳見另一篇文章: 點擊這裏,前往pyecharts版本區別、以及使用

首先,一般來說,小數據的話作爲列表傳入就可以搞定。但是pycharts05x還是支持其它類型的數據傳入的,比如numpy的數組。具體介紹看這裏: 點擊這裏,前往pycharts05x支持傳入的數據類型以及轉換方法

進入虛擬環境(點擊這裏,前往瞭解如何創建、使用以及管理虛擬環境),進行安裝pycharts0.5.x版本:(如果速度慢的話可以換pip源)

pip install pyecharts==0.5.11

一、時間數據可視化

(一)、連續型時間數據可視化
1.階梯圖

from pyecharts import Line

#1.實例化一個圖例(其實就是實例化對象,調用了一個構造函數,返回一個對象)
line = Line("折線圖-階梯圖-1713406107")

# 2.構造適合pycharts能讀取的數據(我這裏是美國某些年的郵票數據)
datax = ['1995','1996','1997','1998','1999','2000','2001','2002','2003','2004','2005','2006','2007','2008','2009']
datay = [0.32,0.32,0.32,0.32,0.33,0.33,0.34,0.37,0.37,0.37,0.37,0.39,0.41,0.42,0.44]

#3.向圖例中添加數據以及配置
line.add("郵票", datax, datay, is_step=True, is_label_show=True,)

#4.打印圖表保存
line #直接在jupyter notebook上面打印顯示
#line.render_notebook()   #直接在jupyter notebook上面打印顯示
# line.render(path="階梯圖-美國郵票價格.html")  #將圖作爲html文件保存起來,當然也可以作爲圖片格式保存起來。

注意 :

關於pycharts05x畫圖的步驟在上面的代碼的註釋中! 0.5.x版本參考1》2》3》4 這四個步驟即可完成基本畫圖。具體的一些個性化配置可以查看文檔: pycharts05x版本官方文檔、直接點擊可訪問
在這裏插入圖片描述
2.折線圖

from pyecharts import Line
df = pd.read_csv("world-population.csv")
df.Year = df.Year.astype(str)


line = Line("折線圖-世界人口")
line.add(
    "人口",
    list(df.Year),
    list(df.Population),
    mark_point=["max", "min"],
)

line

在這裏插入圖片描述
3 擬合曲線

from pyecharts import Overlap,Scatter,Line
rate = pd.read_csv(u"unemployment-rate-1948-2010.csv")
year = list(rate.Year.astype(str))
value = list(rate.Value)
sc = Scatter()
sc.add("", year, value, effect_scale=5)

poly = np.polyfit(list(rate.Year), value, deg = 3)
y = list(np.polyval(poly, list(rate.Year))) #計算所有點
line = Line("失業率趨勢")
line.add("趨勢",year,y)

overlap = Overlap()
overlap.add(line)
overlap.add(sc)
overlap

在這裏插入圖片描述
(二)、離散型時間數據可視化

  1. 散點圖
from pyecharts import Scatter
subscribers = pd.read_csv('subscribers.csv')
suber = subscribers.Subscribers
day = subscribers.Date
day = [i[3:5] for i in list(day)]

sc = Scatter("訂閱數量圖")
sc.add("Subscribers",day,list(suber))
sc

在這裏插入圖片描述
2.柱形圖

from pyecharts import Bar
# 熱狗大胃王大賽成績
hotdog = pd.read_csv("hot-dog-contest-winners.csv")


year = list(hotdog.Year.astype(str))
value_count = list(hotdog['Dogs eaten'])

bar = Bar("30年熱狗大賽成績單")
bar.add("Winer喫掉的熱狗數量", year,value_count, mark_line=["average"], mark_point=["max", "min"])

bar

在這裏插入圖片描述
3. 堆疊柱形圖

# 數據目測還是大胃王
from pyecharts import Bar
hotplace = pd.read_csv("hot-dog-places.csv",header=None)
hotplace = pd.DataFrame(hotplace.values.T, index=hotplace.columns,columns=['year','A','B','C'])


year = list(hotplace.year.astype(str))

bar = Bar("堆疊珠柱狀圖顯示大胃王成績")
bar.add("A", year, list(hotplace.A), is_stack=True)
bar.add("B", year, list(hotplace.B), is_stack=True)
bar.add("C", year, list(hotplace.C), is_stack=True)
bar

在這裏插入圖片描述

對於3:更加直觀的對比:

from pyecharts import Bar

year = list(hotplace.year.astype(str))

bar = Bar("直觀對比顯示大胃王成績")
bar.add("A", year, list(hotplace.A),mark_point=["max", "min"],mark_line=["average"])
bar.add("B", year, list(hotplace.B),mark_point=["max", "min"],mark_line=["average"])
bar.add("C", year, list(hotplace.C),mark_point=["max", "min"],mark_line=["average"])
bar

在這裏插入圖片描述

實驗一:繪製極座標系圖

讀取數據:

hotplace = pd.read_csv("hot-dog-places.csv",header=None)
hotplace = pd.DataFrame(hotplace.values.T, index=hotplace.columns,columns=['year','A','B','C'])

繪製barRadius類型的極座標系圖:

from pyecharts import Polar



polar = Polar("極座標系-堆疊柱狀圖-大胃王", width=1200, height=600)
polar.add(
    "A",
    list(hotplace.A),
    radius_data=list(hotplace.year),
    type="barRadius",
    is_stack=True,
)

polar.add(
    "B",
    list(hotplace.B),
    radius_data=list(hotplace.year),
    type="barRadius",
    is_stack=True,
)

polar.add(
    "C",
    list(hotplace.C),
    radius_data=list(hotplace.year),
    type="barRadius",
    is_stack=True,
)

polar

在這裏插入圖片描述

繪製barAngle類型的極座標系圖: 【你們自己運行一下吧】

from pyecharts import Polar

polar = Polar("極座標系-堆疊柱狀圖-大胃王",width=1200, height=600)
polar.add(
    "A",
    list(hotplace.A),
    radius_data=list(hotplace.year),
    type="barAngle",
    is_stack=True,
)

polar.add(
    "B",
    list(hotplace.B),
    radius_data=list(hotplace.year),
    type="barAngle",
    is_stack=True,
)

polar.add(
    "C",
    list(hotplace.C),
    radius_data=list(hotplace.year),
    type="barAngle",
    is_stack=True,
)
polar.render()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章