pyecharts--> 生成Echarts圖標的類庫html
pip install pyecharts
pip install pyecharts_snapshot
首先,測試繪製個圖表python
from pyecharts import Bar bar = Bar("個人第一個圖表", "這裏是副標題") bar.add("服裝", ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"], [5, 20, 36, 10, 75, 90]) bar.show_config() bar.render("temperature.html")
add()
show_config()
render()
基本上全部的圖表類型都是這樣繪製的:瀏覽器
chart_name = Type()
初始化具體類型圖表。add()
添加數據及配置項。render()
生成 .html 文件。
from pyecharts import Bar attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] v1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3] v2 = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3] bar = Bar("Bar chart", "precipitation and evaporation one year") # 主標題、副標題 bar.add("precipitation", attr, v1, mark_line=["average"], mark_point=["max", "min"]) bar.add("evaporation", attr, v2, mark_line=["average"], mark_point=["max", "min"]) bar.render("name.html") # 渲染成HTML文件
attr:列表 ,名稱 ,橫向座標方向echarts
v1 / v2:列表, 數據,縱座標方向編輯器
mark_point / mark_line:標記點、標記線。用於標記最大最小值,標記平均值的線,標記的形狀、顏色 、大小,自定義標記的點等。標記線能夠是任何兩點連線測試
文中 mark_line=["average"]:標記平均值 , mark_point=["max", "min"]:標記最大值、最小值動畫
render:渲染成文件編碼
若是在A、B商家中的bar_add參數中添加is_stack:表示疊加效果,即商家A、商家B數據疊在一塊兒展現spa
橫向柱形圖:is_convert=True,標識交換X軸和Y軸3d
效果:
from pyecharts import EffectScatter v1 = [10, 20, 30, 40, 50, 60] # 橫座標 v2 = [25, 20, 15, 10, 60, 33] #縱座標 es = EffectScatter("動態散點圖示例") es.add("effectScatter", v1, v2) es.render() # 默認在當前路徑渲染成render.html文件
from pyecharts import EffectScatter es = EffectScatter("動態散點圖各類圖形示例") es.add("", [10], [10], symbol_size=20, effect_scale=3.5, effect_period=3, symbol="pin") es.add("", [20], [20], symbol_size=12, effect_scale=4.5, effect_period=4,symbol="rect") es.add("", [30], [30], symbol_size=30, effect_scale=5.5, effect_period=5,symbol="roundRect") es.add("", [40], [40], symbol_size=10, effect_scale=6.5, effect_brushtype='fill',symbol="diamond") es.add("", [50], [50], symbol_size=16, effect_scale=5.5, effect_period=3,symbol="arrow") es.add("", [60], [60], symbol_size=6, effect_scale=2.5, effect_period=3,symbol="triangle") es.render()
from pyecharts import Line attr = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"] v1 = [5, 20, 36, 10, 10, 100] v2 = [55, 60, 16, 20, 15, 80] line = Line("折線圖示例") line.add("商家A", attr, v1, mark_point=["average"]) line.add("商家B", attr, v2, is_smooth=True, mark_line=["max", "average"]) line.show_config() line.render()
from pyecharts import Pie attr = ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"] v1 = [11, 12, 13, 10, 10, 10] pie = Pie("餅圖示例") pie.add("", attr, v1, is_label_show=True) pie.show_config() pie.render()
from pyecharts import WordCloud name = ['Sam S Club', 'Macys', 'Amy Schumer', 'Jurassic World', 'Charter Communications', 'Chick Fil A', 'Planet Fitness', 'Pitch Perfect', 'Express', 'Home', 'Johnny Depp', 'Lena Dunham', 'Lewis Hamilton', 'KXAN', 'Mary Ellen Mark', 'Farrah Abraham', 'Rita Ora', 'Serena Williams', 'NCAA baseball tournament', 'Point Break'] value = [10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112, 965, 847, 582, 555, 550, 462, 366, 360, 282, 273, 265] wordcloud = WordCloud(width=1300, height=620) wordcloud.add("", name, value, word_size_range=[20, 100]) wordcloud.show_config() wordcloud.render()
from pyecharts import WordCloud name = ['Sam S Club', 'Macys', 'Amy Schumer', 'Jurassic World', 'Charter Communications', 'Chick Fil A', 'Planet Fitness', 'Pitch Perfect', 'Express', 'Home', 'Johnny Depp', 'Lena Dunham', 'Lewis Hamilton', 'KXAN', 'Mary Ellen Mark', 'Farrah Abraham', 'Rita Ora', 'Serena Williams', 'NCAA baseball tournament', 'Point Break'] value = [10000, 6181, 4386, 4055, 2467, 2244, 1898, 1484, 1112, 965, 847, 582, 555, 550, 462, 366, 360, 282, 273, 265] wordcloud = WordCloud(width=1300, height=620) wordcloud.add("", name, value, word_size_range=[30, 100], shape='diamond') wordcloud.show_config() wordcloud.render()
數據表:luqu.csv ,共100條數據
一、查詢分數相同的數量:
import pandas as pd import matplotlib.pyplot as plt f = pd.read_csv("luqu.csv",encoding='gbk') #導入數據 # print(f.head()) f['分數'].value_counts().plot(kind="barh",rot='0') # value_counts:數量,kind:統計數據類型,bar:柱狀圖,h表示橫向展現 , rot:label的角度 plt.show()
將plot的參數改動下:
f['分數'].value_counts().plot(kind="bar",rot='30')
發現x軸label角度變了,柱狀圖也變成縱向的了