Python----数据可视化(Pyecharts三:绘图二:涟漪散点图,K线图,漏斗图,雷达图,词云图,地图,柱状图折线图组合,时间线轮廓图)
1、涟漪特效散点图
from pyecharts.globals import SymbolType
from pyecharts.charts import EffectScatter
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.globals import ThemeType
# 绘制图表
es = (
EffectScatter(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE))
.add_xaxis(Faker.choose())
.add_yaxis('',Faker.values(),symbol=SymbolType.DIAMOND,symbol_size=20)
)
# 渲染图表
es.render_notebook()
2、K线图
from pyecharts.charts import Kline
from pyecharts import options as opts
data = [
[2320.26, 2320.26, 2287.3, 2362.94],
[2300, 2291.3, 2288.26, 2308.38],
[2295.35, 2346.5, 2295.35, 2345.92],
[2347.22, 2358.98, 2337.35, 2363.8],
[2360.75, 2382.48, 2347.89, 2383.76],
[2383.43, 2385.42, 2371.23, 2391.82],
[2377.41, 2419.02, 2369.57, 2421.15],
[2425.92, 2428.15, 2417.58, 2440.38],
[2411, 2433.13, 2403.3, 2437.42],
[2432.68, 2334.48, 2427.7, 2441.73],
[2430.69, 2418.53, 2394.22, 2433.89],
[2416.62, 2432.4, 2414.4, 2443.03],
[2441.91, 2421.56, 2418.43, 2444.8],
[2420.26, 2382.91, 2373.53, 2427.07],
[2383.49, 2397.18, 2370.61, 2397.94],
[2378.82, 2325.95, 2309.17, 2378.82],
[2322.94, 2314.16, 2308.76, 2330.88],
[2320.62, 2325.82, 2315.01, 2338.78],
[2313.74, 2293.34, 2289.89, 2340.71],
[2297.77, 2313.22, 2292.03, 2324.63],
[2322.32, 2365.59, 2308.92, 2366.16],
[2364.54, 2359.51, 2330.86, 2369.65],
[2332.08, 2273.4, 2259.25, 2333.54],
[2274.81, 2326.31, 2270.1, 2328.14],
[2333.61, 2347.18, 2321.6, 2351.44],
[2340.44, 2324.29, 2304.27, 2352.02],
[2326.42, 2318.61, 2314.59, 2333.67],
[2314.68, 2310.59, 2296.58, 2320.96],
[2309.16, 2286.6, 2264.83, 2333.29],
[2282.17, 2263.97, 2253.25, 2286.33],
[2255.77, 2270.28, 2253.31, 2276.22],
]
# 绘制图表
kl = (
Kline()
.add_xaxis([f'2030/6/{i}' for i in range(1,len(data)+1)])
.add_yaxis('',data)
)
# 渲染图表
kl.render_notebook()
3、漏斗图
from pyecharts.charts import Funnel
from pyecharts.faker import Faker
from pyecharts import options as opts
fun = (
Funnel()
.add('',data_pair=[(k,v) for k,v in zip(Faker.choose(),Faker.values())],
label_opts= opts.LabelOpts(formatter='{b}:{c}',position='inside'),
sort_='ascending'
)
)
fun.render_notebook()
4、雷达图
from pyecharts.charts import Radar
from pyecharts import options as opts
#添加数据项
data1=[[98,100,89,89,97]]
data2 = [[100,89,79,67,61]]
#绘制雷达图
radar = (
Radar()
.add_schema(
[
opts.RadarIndicatorItem(name="语文",max_=100),
opts.RadarIndicatorItem(name="数学",max_=100),
opts.RadarIndicatorItem(name="化学",max_=100),
opts.RadarIndicatorItem(name="历史",max_=100),
opts.RadarIndicatorItem(name="地理",max_=100),
])
.add('小明',data1,color=Faker.rand_color())
.add('大虎',data2,color=Faker.rand_color())
.set_series_opts(label_opts=opts.LabelOpts(is_show=False),linestyle_opts=opts.LineStyleOpts(width=3))
)
radar.render_notebook()
5、词云图
from pyecharts.charts import WordCloud
from pyecharts import options as opts
data = [ ['ThinkPad','15.7'],
['联想','14.5'],
['惠普','14.4'],
['华为','11.7'],
['华硕','8.2'],
['戴尔','8.1'],
['Acer 宏碁','4.5'],
['苹果','3.5'],
['神舟','3.2'],
['ROG','3.1'],
['机械革命','2.4'],
['msi 微星','1.8'],
['外星人','1.5'],
['微软','1.4'],
['荣耀','1.2'],
['雷神','1'],
['三星','0.7'],
['红米','0.6'],
['机械师','0.5'],
['小米','0.5'],
['炫龙','0.4'],
['雷蛇','0.2'],
['壹号本','0.1'],
['a 豆','0.1'],
['未来人类','0.1'],
['技嘉','0.1'],
['中柏','0.1'],
['VAIO','0.1'],
['火影','0.1'],
['LG','0.1'],
['松下','0'],
['麦本本','0'],
['吾空','0'],
['长城','0'],
['GPD','0'],
['清华同方','0'],
['神基','0'],
['爱尔轩','0'],
['酷比魔方','0'],
['海尔','0'],
['谷歌','0'],
['台电','0'],
['iru','0'],
['攀升 IPASON','0'],
['NEC','0'],
['夏普','0'],
['京东京造','0'],
['锡恩帝','0'],
['皓勤','0'],
['Intel','0']]
# 绘制指定图形
wd = (
WordCloud() # 初始化词云图表
.add('',data,shape='star')
)
# 渲染图表
wd.render_notebook()
6、地图
from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.faker import Faker
map = (
Map() # 初始化地图对象
.add('商家A',[['北京市',100],['上海市',150],['太原市',99]],'china')
# 1. 数据的key一定要和地图上的名称相符
# 2. 地图上没有的key尽量不要去用,很有可能显示不出来
)
# 渲染图表
map.render_notebook()
地图坐标图
from pyecharts.charts import Geo
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.globals import ChartType
from pyecharts.globals import SymbolType
geo = (
Geo()
.add_schema()
.add('',data_pair=[i for i in zip(Faker.provinces,Faker.values())],
label_opts= opts.LabelOpts(is_show=False),
type_=ChartType.EFFECT_SCATTER) # 填充数据
.add('',[('北京','上海1'),('北京','广州'),('广州','上海')],
type_=ChartType.LINES, # 绘制成线
linestyle_opts=opts.LineStyleOpts(curve=0.2), # 设置线的平滑度
effect_opts=opts.EffectOpts(symbol_size=6,symbol=SymbolType.ARROW,color='green'),
color='green'
)
)
# 渲染图表
geo.render_notebook()
7、柱状图折线图组合
from pyecharts.charts import Bar,Line
from pyecharts.globals import ThemeType
from pyecharts import options as opts
# 设置数据
x_value = [f'{i}月' for i in range(1,13)]
# 蒸发
evaporation = [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
# 降水
precipitation = [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
# 温度
temperature = [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
# 柱状图
bar = (
Bar()
.add_xaxis(xaxis_data=x_value) # 设置x轴数据
.add_yaxis('蒸发',evaporation)
.add_yaxis('降水',precipitation)
.set_global_opts(title_opts=opts.TitleOpts('组合图'),
yaxis_opts=opts.AxisOpts(name='水量',min_=0,max_=250,
axislabel_opts=opts.LabelOpts(formatter='{value}ml')))
.extend_axis(yaxis=opts.AxisOpts(
name='温度',min_=0,max_=25,
axislabel_opts=opts.LabelOpts(formatter='{value}℃')
)) # 追加y轴数据
)
# 折线图
line = (
Line()
.add_xaxis(xaxis_data=x_value)
.add_yaxis('温度',temperature,yaxis_index=1) # yaxis_index指定第几个y轴内容
)
# 混合2个图表
bar.overlap(line)
# 渲染图表
bar.render_notebook()
8、时间线轮播图
from pyecharts.charts import Timeline,Bar
from pyecharts.faker import Faker
# 绘制时间线图表
timeline = Timeline()
# 设置x轴数据
x_value = Faker.choose()
for year in range(2020,2031):
bar = (
Bar()
.add_xaxis(x_value)
.add_yaxis('商家A',Faker.values())
.add_yaxis('商家B',Faker.values())
)
# 将图表增加到时间线中
timeline.add(bar,f'{year}年')
# 渲染图表
timeline.render_notebook()