pyecharts畫圖總結


pyecharts 畫圖歸納
將本地文件導入到Pyecharts:

test = open(filename, 'r')

data = test.readlines()

test.close()

如果遇到無法導入包的情況:

sudo pip install pyecharts == 0.1.9.4

再不行:

sudo apt - get install python3 - tk

pip3 install pyecharts

mysql文件導入Pycharm的代碼

import pymysql

一頁多圖

from pyecharts import Page

導入柱狀圖Bar

from pyecharts import Bar

導入餅圖Pie

from pyecharts import Pie

導入折線圖Line

from pyecharts import Line

導入雷達圖Radar

from pyecharts import Radar

導入散點圖Scatter

from pyecharts import Scatter

導入詞雲圖WordCloud

from pyecharts import WordCloud

將mysql的數據導入pycharm

db = pymysql.connect("要連接的主機地址localhost", "用於登錄的數據庫用戶root", "密碼strongs", "要連接的數據庫名")
cursor = db.cursor()
sql = "select * from 表名"
try:
cursor.execute(sql)
data = cursor.fetchall()
except:
print("Error!")
db.close()

print(data)
x = [x[0] for x in data]
y = [x[1] for x in data]

page = Page()

柱狀圖-Bar

設置行名

columns = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

設置數據

data1 = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
data2 = [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("柱狀圖", "一年的降水量與蒸發量", title_color='red', width=1000)

添加柱狀圖的數據及配置項

bar.add("圖標", 列名, 列高(數據), mark_line=["average"], mark_point=["max", "min"])

bar.add("降水量", columns, data1, mark_line=['max'], mark_point=["max", "min"], is_convert=False, area_color='yellow')
bar.add("蒸發量", columns, data2, mark_line=["average"], mark_point=["max", "min"], is_convert=False)

打印輸出圖表的所有配置項

bar.show_config()

生成本地文件(默認為.html文件)

bar.render('./bar.html')

page.add(bar)

餅圖-Pie

設置主標題與副標題,標題設置居中,設置寬度為900

pie = Pie("餅狀圖", "一年的降水量與蒸發量", title_pos='center', width=900)

加入數據,設置坐標位置為【25,50】,上方的colums選項取消顯示

pie.add("降水量", columns, data1, center=[25, 50], is_legend_show=True)

加入數據,設置坐標位置為【75,50】,上方的colums選項取消顯示,顯示label標簽

pie.add("蒸發量", columns, data2, center=[75, 50], is_legend_show=False, is_label_show=True)

pie.show_config()

保存圖表

pie.render('./pie.html')

page.add(pie)

折線圖-Line

line = Line("折線圖", "一年的降水量與蒸發量")

is_label_show是設置上方數據是否顯示

line.add("降水量", columns, data1, is_label_show=True)
line.add("蒸發量", columns, data2, is_label_show=True)

line.render('./line.html')

page.add(line)

雷達圖-Radar

radar = Radar("雷達圖", "一年的降水量與蒸發量")

由於雷達圖傳入的數據得為多維數據,所以這里需要做一下處理

radar_data1 = [[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]]
radar_data2 = [[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]]

設置column的最大值,為了雷達圖更為直觀,這里的月份最大值設置有所不同

schema = [
("Jan", 5), ("Feb", 10), ("Mar", 10),
("Apr", 50), ("May", 50), ("Jun", 200),
("Jul", 200), ("Aug", 200), ("Sep", 50),
("Oct", 50), ("Nov", 10), ("Dec", 5)
]

傳入坐標

radar.config(schema)
radar.add("降水量", radar_data1)

一般默認為同一種顏色,這里為了便於區分,需要設置item的顏色

radar.add("蒸發量", radar_data2, item_color="#1C86EE")

radar.render('./radar.html')

page.add(radar)

散點圖-scatter

scatter = Scatter("散點圖", "一年的降水量與蒸發量")

xais_name是設置橫坐標名稱,這里由於顯示問題,還需要將y軸名稱與y軸的距離進行設置

scatter.add("降水量與蒸發量的散點分布", data1, data2, xaxis_name="降水量", yaxis_name="蒸發量",
yaxis_name_gap=40)

scatter.render('./scatter.html')

page.add(scatter)

詞雲圖-word_cloud

word_cloud = WordCloud(width=1300, height=620)
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]
word_cloud.add("", name, value, word_size_range=[30, 100], shape='diamond')

word_cloud.show_config()

word_cloud.render()
page.add(word_cloud)

page.render('./all-plots.html')

圖表布局

from pyecharts import Grid

設置折線圖標題位置

line = Line("折線圖", "一年的降水量與蒸發量", title_top="45%")
line.add("降水量", columns, data1, is_label_show=True)
line.add("蒸發量", columns, data2, is_label_show=True)
grid = Grid()

設置兩個圖表的相對位置

grid.add(bar, grid_bottom="60%")
grid.add(line, grid_top="60%")
grid.render()

結合不同類型圖表疊加

from pyecharts import Overlap
overlap = Overlap()
bar = Bar("柱狀圖-折線圖合並", "一年的降水量與蒸發量")
bar.add("降水量", columns, data1, mark_point=["max", "min"])
bar.add("蒸發量", columns, data2, mark_point=["max", "min"])
overlap.add(bar)
overlap.add(line)
overlap.render()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM