目录
一.折线图
1.导入所需要的库
2. 导入数据,输出查看是否成功
3.提取日期,因为需要做商品的日销售量折线图
.因为要做这两个商品的销售折线图,所以先提取一下看看是否正常(避免有空值)
4.设折线图
图形大小与颜色可根据自己喜好来改
二.玫瑰图
玫瑰图就是在饼图的基础上,每一块饼的半径表示该区域的数据大小
1.第一步,先导入所需要用到的库
Pie是饼图模块,用来制作饼图
2.导入数据
3.对[平均速度]这个序列进行加工,做一个速度区间,后面将用速度区间 做一个玫瑰图
最后查看一下各个速度区间的数量
4.设计玫瑰图
代码后面都有注释,可以根据自己的喜爱调整
三.三维柱形图
1.第一步,先导入所需要用到的库
2.导入数据
3.提取信息
.提取作图所需用到的信息
4.手动创建list
5.设计三维柱形图
图形大小与颜色可根据自己喜好来改
前言:数据可视化是将数据以视觉形式表现出来的数据研究。也可以理解为是通过计算机图形学和图像处理等技术将获取的数据转换成图表或图像等展现在屏幕上,并进行各种交互处理的理论、方法和技术。图表为更好地探索、分析数据提供了一种直观的方法,它对最终分析结果的展示具有重要的作用。数据可视化是一个新兴名词,它表示用图表的形式对数据进行展示。当您对一个数据集进行分析时,如果使用数据可视化的方式,那么您会很容易地确定数据集的分类模式、缺失数据、离群值等等。
import pandas as pd
import pyecharts.options as opts
from pyecharts.charts import Line
data = pd.read_excel(r'折线图作业数据-商品销量(1).xlsx')
data
x = data['日期'].agg(lambda x:str(x.day)).tolist()
x
data['牛奶']
data['面包']
c = (
Line()
.add_xaxis(x)
.add_yaxis(
"牛奶",
data['牛奶'],
itemstyle_opts=opts.ItemStyleOpts(border_width=3,border_color="red",color="blue"),
linestyle_opts=opts.LineStyleOpts(color="#33FFFF",width=4,type_="dashed"),
# markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="min")]),
)
.add_yaxis(
"面包",
data['面包'],
itemstyle_opts=opts.ItemStyleOpts(border_width=3,border_color="blue",color="red"),
linestyle_opts=opts.LineStyleOpts(color="#33FFFF",width=4,type_="dashed"),
# markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max")]),
)
.set_global_opts(title_opts=opts.TitleOpts(title="商品日销售折线图"))
# .render("line_markpoint.html")
)
c.render_notebook()
from pyecharts import options as opts
from pyecharts.charts import Pie
import pandas as pd
data = pd.read_excel(r'新能源汽车行驶里程表.xlsx')
data
提取平均速度这个序列查看是否有报错(避免有空值)
data['平均速度']
# 方法1:序列的加工 Series.agg(加工函数)
def age_range(平均速度):
if 平均速度<=20:
return '0~20'
elif 平均速度<=30:
return '20~30'
elif 平均速度<=40:
return '30~40'
elif 平均速度<=50:
return '40~50'
else:
return '50以上'
data['速度区间'] = data['平均速度'].agg(age_range)
# 方法2:通过pd.cut()函数实现分箱
data['速度区间2'] = pd.cut(data['平均速度'],bins=[0,20,30,40,50,100],labels=['0~20','20~30','30~40','40~50','50以上'])
data
result = data.groupby(by='速度区间')['平均速度'].count()
result
for x,y in zip(['a','b'], [1,2]):
print(x) # 输出元组对象(和列表类似的对象)
print(y)
list = [[x,int(y)] for x,y in zip(result.index, result.values)]
list
c = (
Pie(init_opts=opts.InitOpts(width="1000px", height="800px")) # 设置背景的大小
.add(
series_name = "速度区间", # 必须项
data_pair = list,
radius=["20%", "40%"], # 设置环的大小
# center=["20%", "50%"], # 设置饼图的位置
rosetype="radius", # 设置玫瑰图类型
label_opts=opts.LabelOpts(formatter="{a}:{b}\n个数:{c}\n占比:{d}%"), # 设置标签内容格式
)
.set_colors(["#FF00FF", "#DC143C", "#00FF00", "pink"]) # 颜色设置
.set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例"),
legend_opts=opts.LegendOpts(pos_top="9%", pos_left="30%"), # 设置图示的位置
)
)
c.render_notebook()
import pyecharts.options as opts
from pyecharts.charts import Bar3D
import pandas as pd
data = pd.read_excel(r'航空公司数据.xlsx')
data
gender_level_count = data.groupby(by=['会员卡级别','性别'])['会员卡号'].count()
gender_level_count
gender = ['男','女']
level = [4,5,6] # 手动创建list
list.append([i,j,int(gender_level_count[level[i],gender[j]])]) # 第三维度的数据需要int类型
list = []
for i in range(len(level)):
for j in range(len(gender)):
list.append([i,j,int(gender_level_count[level[i],gender[j]])]) # 第三维度的数据需要int类型
list
series_name="", # 此参数必须有
data = list, # 必须接收一个二维list,且元素列表的前两位数字为柱体在3d坐标系中位置的索引
.set_series_opts(label_opts=opts.LabelOpts(is_show=True)) # 显示数据标签
c = (
Bar3D(init_opts=opts.InitOpts(width="800px", height="600px"))
.add(
series_name="", # 此参数必须有
data = list, # 必须接收一个二维list,且元素列表的前两位数字为柱体在3d坐标系中位置的索引
xaxis3d_opts=opts.Axis3DOpts(type_="category", data=level, name='会员卡等级'),
yaxis3d_opts=opts.Axis3DOpts(type_="category", data=gender, name='性别'),
zaxis3d_opts=opts.Axis3DOpts(type_="value", name = '人数'),
)
.set_series_opts(label_opts=opts.LabelOpts(is_show=True)) # 显示数据标签
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
max_ = 5000, # 设置色阶的最大值
# range_color= Faker.visual_color # 调用Faker数据库的色阶数据
)
)
)
c.render_notebook()