python数据可视化之pyecharts(一)——柱状图、折线图、散点图、饼图、词云的绘制

1、下载安装pyecharts

cmd输入以下命令

pip install pyecharts

如果是用的pycharm可以直接在Terminal中输入
(如果上述命令没有效果的话,可用下面的命令)

python -m pip install pyecharts  --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org

关于版本问题我在这提一下,最新版本的pyecharts导入代码是
比如导入Bar库

from pyecharts.charts import Bar

而旧版本的是直接

from pyecharts import Bar

如果导入库的时候出现错误可考虑版本问题,建议还是使用以前的版本

如果想直接将图片保存为 png, pdf, gif 格式的文件,可以使用 pyecharts-snapshot。
pip 安装

pip install pyecharts_snapshot

2、学习pyecharts

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

1、制作动态柱状图

1、单属性柱状图

导入库:

from pyecharts import Bar
name_list = ["苹果", "梨子", "香蕉", "葡萄"]#柱状图属性名称
value_list = [15, 25, 5, 10]#属性值
# 默认Bar()第一个参数为 主标题,第二个参数为副标题
bar1 = Bar('水果数量', 'Theme', title_color='#5599ff', subtitle_color='#00ffff',
           background_color="white", title_pos='center', title_top='5%',)
# background_color 背景颜色 title_top标题距离顶端位置  title_pos标题中心位置
# title_color主标题颜色 subtitle_color副标题颜色
bar1.add("水果", name_list, value_list)#将数据加入柱状图中
bar1.render('./图像/单属性柱状图.html')#保存为HTML格式,也可保存为jpg,png,gif等

在这里插入图片描述
提一下,’./图像/单属性柱状图.html’是保存为html文件以及文件路径我是保存在了当前项目的图像文件夹中(根据自己需求来写)
2、多属性柱状图

from pyecharts import Bar
name_list = ["苹果", "梨子", "香蕉", "葡萄"]#柱状图属性名称
value_list0 = [15, 25, 5, 10]#属性值0
value_list1 = [5, 10, 15, 20]#属性值1
value_list2 = [20, 5, 30, 15]#属性值2
bar2 = Bar(title = "水果数量")#生成对象,title为柱状图标题
bar2.add("商家0", name_list, value_list0)#将数据加入柱状图中
bar2.add("商家1", name_list, value_list1)#将数据加入柱状图中
bar2.add("商家2", name_list, value_list2)#将数据加入柱状图中
bar2.render('./图像/多属性柱状图.html')#保存为HTML格式,也可保存为jpg,png,gif等

在这里插入图片描述
图像是可进行动态操作的,也就是说上面的三个商家的图标是可以点的,想要看哪个就可以把哪个图标点亮,当鼠标移动到对应的柱状图上时会显示对应的数据信息。
3、堆叠柱状图

from pyecharts import Bar #导入相应包
name_list = ["苹果", "梨子", "香蕉", "葡萄"]#柱状图属性名称
value_list0 = [15, 25, 5, 10]#属性值0
value_list1 = [5, 10, 15, 20]#属性值1
value_list2 = [20, 5, 30, 15]#属性值2
bar3 = Bar(title="水果数量")#生成对象,title为柱状图标题
#is_stack=True表示将数据堆叠,is_label_show=True表示显示对应数值
bar3.add("商家0", name_list, value_list0, is_stack=True, is_label_show=True)
bar3.add("商家1", name_list, value_list1, is_stack=True, is_label_show=True)
bar3.add("商家2", name_list, value_list2, is_stack=True, is_label_show=True)
bar3.render('./图像/堆叠柱状图.html')

在这里插入图片描述
4、x和y轴交换柱状图

from pyecharts import Bar #导入相应包
name_list = ["苹果", "梨子", "香蕉", "葡萄"]#柱状图属性名称
value_list0 = [15, 25, 5, 10]#属性值0
value_list1 = [5, 10, 15, 20]#属性值1
value_list2 = [20, 5, 30, 15]#属性值2
bar4 = Bar(title="水果数量")#生成对象,title为柱状图标题
bar4.add("商家0", name_list, value_list0, is_label_show=True)
bar4.add("商家1", name_list, value_list1, is_label_show=True)
bar4.add("商家2", name_list, value_list2, is_label_show=True, is_convert=True)
#is_convert=True,xy轴交换
bar4.render("./图像/xy轴交换柱状图.html")

在这里插入图片描述
5、时间线动态柱状图

from pyecharts import Bar, Timeline#Timeline展示时间线的包
from random import randint
attr = ["苹果", "梨", "西瓜", "橙子", "菠萝", "葡萄"]
#图1
bar_1 = Bar("2016 年销量", "数据纯属虚构")
bar_1.add("春季", attr, [randint(10, 100) for _ in range(6)])
bar_1.add("夏季", attr, [randint(10, 100) for _ in range(6)])
bar_1.add("秋季", attr, [randint(10, 100) for _ in range(6)])
bar_1.add("冬季", attr, [randint(10, 100) for _ in range(6)])
#图2
bar_2 = Bar("2017 年销量", "数据纯属虚构")
bar_2.add("春季", attr, [randint(10, 100) for _ in range(6)])
bar_2.add("夏季", attr, [randint(10, 100) for _ in range(6)])
bar_2.add("秋季", attr, [randint(10, 100) for _ in range(6)])
bar_2.add("冬季", attr, [randint(10, 100) for _ in range(6)])
#图3
bar_3 = Bar("2018 年销量", "数据纯属虚构")
bar_3.add("春季", attr, [randint(10, 100) for _ in range(6)])
bar_3.add("夏季", attr, [randint(10, 100) for _ in range(6)])
bar_3.add("秋季", attr, [randint(10, 100) for _ in range(6)])
bar_3.add("冬季", attr, [randint(10, 100) for _ in range(6)])
#图4
bar_4 = Bar("2019 年销量", "数据纯属虚构")
bar_4.add("春季", attr, [randint(10, 100) for _ in range(6)])
bar_4.add("夏季", attr, [randint(10, 100) for _ in range(6)])
bar_4.add("秋季", attr, [randint(10, 100) for _ in range(6)])
bar_4.add("冬季", attr, [randint(10, 100) for _ in range(6)])
#图5
bar_5 = Bar("2020 年销量", "数据纯属虚构")
bar_5.add("春季", attr, [randint(10, 100) for _ in range(6)])
bar_5.add("夏季", attr, [randint(10, 100) for _ in range(6)])
bar_5.add("秋季", attr, [randint(10, 100) for _ in range(6)])
bar_5.add("冬季", attr, [randint(10, 100) for _ in range(6)], is_legend_show=True)
#将上面的图按时间点加入时间线
timeline = Timeline(is_auto_play=True, timeline_bottom=0)
timeline.add(bar_1, '2016 年')
timeline.add(bar_2, '2017 年')
timeline.add(bar_3, '2018 年')
timeline.add(bar_4, '2019 年')
timeline.add(bar_5, '2020 年')
timeline.render('./图像/时间线动态柱状图.html')

在这里插入图片描述

2、折线图

1、普通折线图

# 折线图
from pyecharts import Line #导入相应包
name_list = ["冰箱", "电视", "空调", "洗衣机"]#属性名称
value_list0 = [15, 25, 5, 10]#属性值0
value_list1 = [5, 10, 15, 20]#属性值1
value_list2 = [20, 5, 30, 15]#属性值2
line = Line(title="电器数量")#生成对象,title为标题
line.add("商家0", name_list, value_list0, is_stack=True, is_label_show=True)#将数据加入图中
line.add("商家1", name_list, value_list1, is_stack=True, is_label_show=True)#将数据加入图中
line.add("商家2", name_list, value_list2, is_stack=True, is_label_show=True)#将数据加入图中
line.render('./图像/折线图.html')#保存为HTML格式,也可保存为jpg,png,gif等

在这里插入图片描述
2、折线图+柱状图

# 将柱状图和折线图放在一个图中
from pyecharts import Bar, Line, Overlap
name_list = ["冰箱", "电视", "空调", "电脑"]#属性名称
value_list0 = [15, 25, 5, 10]#属性值0
value_list1 = [5, 10, 15, 20]#属性值1
bar = Bar(title="水果销量")
line = Line()
bar.add("商家0", name_list, value_list0, mark_line=["average"], mark_point=["max", "min"], is_label_show=True)#将数据加入图中
bar.add("商家1", name_list, value_list1, mark_line=["average"], mark_point=["max", "min"], is_label_show=True)#将数据加入图中
line.add("商家0", name_list, value_list0, is_smooth=True)#将数据加入图中
line.add("商家1", name_list, value_list1)#将数据加入图中
overlap = Overlap()
overlap.add(bar)
overlap.add(line)
overlap.render('./图像/柱状图+折线图.html')

在这里插入图片描述

3、散点图

from pyecharts import Scatter   #散点图
v1 =[25.02, 18.73, 7.85, 7.68, 7.35, 5.35, 3.29, 2.23, 1.98, 1.78, 1.65, 1.64, 1.06, 1.06, 0.69]
v2 =[5.35, 4.42, 4.31, 3.92, 3.29, 2.23, 4.42, 4.31, 3.92, 3.29, 2.23, 1.98, 1.78, 1.65, 0.8]
scatter =Scatter("电影类型评分", title_pos='center', background_color='white', title_top='90%')
scatter.add("爱情", v1, v2)
scatter.add("动作", v1[::-1], v2)
scatter.show_config()
scatter.render("./图像/散点图.html")

在这里插入图片描述

4、饼图

# 饼图
from pyecharts import Pie
attr = ["电脑", "电视", "冰箱", "洗衣机", "电饭煲", "电磁炉"]
value1 = [10, 15, 5, 20, 8, 18]
value2 = [10, 11, 12, 13, 14, 15]
pie = Pie(title='电器销量图图')
#饼图1圆心坐标为[25,50],内外半径radius=[10,75],is_random = True颜色随机
pie.add('商家1', attr, value1, center=[25, 50], is_random=True, radius=[10, 75], is_legend_show=True)#,rosetype = 'radius',is_label_show = False)
#饼图1圆心坐标为[75,50],内外半径radius=[0,75],展示成南丁格尔图
pie.add('商家2', attr, value2, center=[75, 50], is_random=True, radius=[0, 75], rosetype='area', is_legend_show = True,is_label_show = True)
pie.render('./图像/饼图.html')

在这里插入图片描述

5、词云

# 词云
from pyecharts import WordCloud
name_list = ['Java', 'Python', 'C++', 'C', 'JavaScript', 'PHP', 'Go', 'R', 'C#', 'Swift']
value_list = [60, 90, 80, 70, 60, 50, 60, 70, 80, 90]
wordcloud = WordCloud(title='词云',width=1200, height=750)
wordcloud.add("编程语言", name_list, value_list, word_size_range=[50, 100])
wordcloud.render('./图像/词云.html')

在这里插入图片描述
欢迎持续关注!
个人博客网站:jQueryZK Blog

  • 12
    点赞
  • 144
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供Python代码来绘制上海市2016年全年用电量的散点图折线图柱状图饼图和箱线图。但是,请注意,这些图表的绘制需要先收集和处理数据,才能进行可视化。以下是一个简单的例子,仅供参考: 首先,我们需要导入所需的数据: ```python import pandas as pd import matplotlib.pyplot as plt # 读入数据 data = pd.read_csv('shanghai_electricity_2016.csv') ``` 接下来,我们可以用以下代码绘制散点图: ```python plt.scatter(data['month'], data['electricity']) plt.xlabel('Month') plt.ylabel('Electricity') plt.title('Shanghai Electricity Consumption in 2016') plt.show() ``` 这里假设数据文件为CSV格式,包含两列数据:月份和用电量。您可以根据实际情况修改代码。 下面是绘制折线图的代码: ```python plt.plot(data['month'], data['electricity']) plt.xlabel('Month') plt.ylabel('Electricity') plt.title('Shanghai Electricity Consumption in 2016') plt.show() ``` 接下来,我们可以用以下代码绘制柱状图: ```python plt.bar(data['month'], data['electricity']) plt.xlabel('Month') plt.ylabel('Electricity') plt.title('Shanghai Electricity Consumption in 2016') plt.show() ``` 接着,我们可以用以下代码绘制饼图: ```python plt.pie(data['electricity'], labels=data['month']) plt.title('Shanghai Electricity Consumption in 2016') plt.show() ``` 最后,我们可以用以下代码绘制箱线图: ```python plt.boxplot(data['electricity']) plt.title('Shanghai Electricity Consumption in 2016') plt.show() ``` 当然,这些代码只是一个简单的例子,您可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值