目录
一、Plotly Express简介
- Plotly是新一代的Python数据可视化开发库,主打功能是绘制在线可交互的图表,绘制的图表可以直接在jupyter中查看。
- Plotly Express是 Plotly.py 的高级封装,为复杂的图表提供了一个简单的语法。
- 一旦导入Plotly Express(px),大多数绘图只需要一个函数调用,接受一个整洁的 Pandas dataframe,并简单描述你想要制作的图。
二、Plotly Express基本图表类型
1、散点图(scatter)
import plotly.express as px
df = px.data.iris() # iris is a pandas DataFrame
fig=px.scatter(df, x="petal_width", y="petal_length", color="species", size="petal_length", hover_data=["petal_width"]) #hover_data交互显示的数据
fig.show()
(IRIS鸢尾花数据集可视化)
2、线形图(line)
import plotly.express as px
import numpy as np
t=np.linspace(0,2*np.pi,100)
fig=px.line(x=t,y=np.sin(t))
fig.show()
3、直方图(histogram)
import plotly.express as px
fig = px.histogram(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])
fig.show()
4、地图
数据集:
数据质量标准——近期(实时)、权威(来源)、完整(年度)。
完整代码:
import plotly.express as px
df=px.data.gapminder()
print(df) #查看数据集
fig=px.scatter_geo(df,locations="iso_alpha",size='pop',
animation_frame="year",color="continent",
animation_group="country",hover_name="country",
projection='natural earth')
fig.show()
运行结果:
(数据集来自Gapminder,可播放动画)
三、Pyecharts简介
- ECharts是一个使用 JavaScript 实现的开源可视化库,兼容当前绝大部分浏览器。
- pyecharts实现Python调用echarts库。
- html可交互,如鼠标悬停查看详情、点击图例开关某项。
- 更多功能可查看文档Document。
四、Pyecharts基本图表类型
1、柱状图(bar)
完整代码:
import pyecharts as pe
from pyecharts.charts import Bar
from pyecharts import options as opts #导入配置项
from pyecharts.globals import ThemeType
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.ROMANTIC))
x=['扬名立万','长津湖','门锁','野马分鬃','铁道英雄']
y=[365.43,205.09,112.91,99.49,89.86] #数据来源:艺恩娱数
bar.add_xaxis(x)
bar.add_yaxis("当前票房",y)
bar.render("bar.html")
运行结果:
配色选择:
2、饼图(pie)
完整代码:
import pyecharts as pe
from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.globals import ThemeType
pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
x=['扬名立万','长津湖','门锁','野马分鬃','铁道英雄']
y=[365.43,205.09,112.91,99.49,89.86]
moviedata=[list(z) for z in zip(x,y)]
pie.add(series_name="当前票房",data_pair=moviedata,radius="50%",rosetype="radius")
pie.render("pie.html")
运行结果:
3、地理坐标(geo)
完整代码:
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.faker import Faker
from pyecharts.globals import ChartType
c = (
Geo()
.add_schema(maptype="广东")
.add(
"geo",
[list(z) for z in zip(Faker.guangdong_city, Faker.values())],
type_=ChartType.HEATMAP,
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="Geo-广东地图")
)
.render("geo_guangdong.html")
)
运行结果:
4、关系图(gragh)
完整代码:
from pyecharts import options as opts
from pyecharts.charts import Graph
nodes = [
{"name": "结点1", "symbolSize": 10},
{"name": "结点2", "symbolSize": 20},
{"name": "结点3", "symbolSize": 30},
{"name": "结点4", "symbolSize": 40},
{"name": "结点5", "symbolSize": 50},
{"name": "结点6", "symbolSize": 40},
{"name": "结点7", "symbolSize": 30},
{"name": "结点8", "symbolSize": 20},
]
links = []
for i in nodes:
for j in nodes:
links.append({"source": i.get("name"), "target": j.get("name")})
c = (
Graph()
.add("", nodes, links, repulsion=8000)
.set_global_opts(title_opts=opts.TitleOpts(title="Graph-基本示例"))
.render("graph_base.html")
)