pyecharts
pyecharts官网链接快速开始-pyecharts
全局设置
# 安装: pip install pyecharts
from pyecharts.charts import Bar
from pyecharts import options as opts
# 内置主题类型可查看 pyecharts.globals.ThemeType
from pyecharts.globals import ThemeType
bar = (
Bar(init_opts=opts.InitOpts(width="1200px",height="500px",theme=ThemeType.DARK)) #黑色背景
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
.add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
#设置全局配置项
.set_global_opts(
title_opts=opts.TitleOpts(title="商家AB销售额对比",subtitle="副标题"),#大小标题
legend_opts=opts.LegendOpts(is_show=True),
toolbox_opts=opts.ToolboxOpts(is_show=True), #可选择其他操作的窗口
visualmap_opts=opts.VisualMapOpts(
is_show=True,
),
tooltip_opts=opts.TooltipOpts(is_show=True),
datazoom_opts=opts.DataZoomOpts(is_show=True) #图形可滑动
)
)
bar.render("pyecharts基本使用.html")
饼图
from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
v = Faker.choose()
result = [list(z) for z in zip(v, Faker.values())]
# 户型占比:[[三室两厅,200] ,[三室一厅,100],[两室两厅,88] ]
print(result)
c = (
Pie()
.add(
"(๑•̀ㅂ•́)و✧",
result,
radius=["30%", "75%"],
center=["50%", "50%"],
rosetype="area",
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Pie-玫瑰图示例"),
tooltip_opts=opts.TooltipOpts(is_show=False)
)
.set_series_opts(
#label_opts:图形上的默认标注的值
# 饼图 formatter: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
label_opts=opts.LabelOpts(is_show=True,formatter="{a}-{b}-{c}-{d}%")
)
.render("饼图绘制.html")
)
实例
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.globals import ThemeType
#读取csv文件
df = pd.read_csv('D:\project\数据分析\lianjia_data.csv',encoding='utf8')
#print(df.head())
temp = df.groupby('area')['unit_price'].mean().reset_index()
#print(temp)
result=[]
for index,value in temp.iterrows():
result.append([value['area'],round(value['unit_price']/10000,1)])
print(result)
result2 = [
[
value['area'],
round(value['unit_price']/10000,1)
]
for index,value in temp.iterrows()
]
print(result2)
# 地图目标数据:[['汕头市', 96], ['汕尾市', 129], ['揭阳市', 114], ['阳江市', 133], ['肇庆市', 75]]
c = (
Map(init_opts=opts.InitOpts(theme=ThemeType.DARK))
# 具体参考 pyecharts.datasets.map_filenames.json 文件
.add("深圳各区均价",result2, "深圳")
.set_global_opts(
title_opts=opts.TitleOpts(title="深圳各区均价"),
visualmap_opts=opts.VisualMapOpts(max_=10)
)
.render("11-深圳各区均价.html")
)
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Scatter
from pyecharts.globals import ThemeType
#读取csv文件
df = pd.read_csv('D:\project\数据分析\lianjia_data.csv',encoding='utf8')
c = (
Scatter(init_opts=opts.InitOpts(theme=ThemeType.DARK))
.add_xaxis(df['houseSize']) #面积
.add_yaxis("房价-面积散点图",df['total_price']) #房价
.set_global_opts(
title_opts=opts.TitleOpts(title="房价-面积散点图"),
visualmap_opts=opts.VisualMapOpts(max_=1000),
)
.set_series_opts(
label_opts=opts.LabelOpts(is_show=False),
#标记点
markpoint_opts=opts.MarkPointOpts(
data=[
opts.MarkPointItem(name="最低廉的房子",type_="min"),
opts.MarkPointItem(name="最奢华的房子",type_="max")
]
)
)
.render("scatter_房价_color.html")
)