9.2 Python Pygal绘制叠加柱状图、叠加折线图、饼图与点图

2、Pygal绘制叠加柱状图、叠加折线图、点图与饼图

1)叠加图

  • 叠加图第二组数据会叠加在第一组数据上,可看到两组数据的累加效果,其它组数据亦同
(1)叠加柱状图:Pygal.StackedBar()
import pygal
import random

# 数据
year_data = [str(i) for i in range(2011, 2020)]
banana_data = [random.randint(20,40)*1000 for i in range(1, 10)]
apple_data = [random.randint(35,60)*1000 for i in range(1, 10)]

garph = pygal.StackedBar()    # 创建图(叠加柱状图)

# 添加数据
garph.add('香蕉的历年销量', banana_data)
garph.add('苹果的历年销量', apple_data)

garph.x_labels = year_data            # 设置 X 轴刻度
garph.y_label_rotation = 45           # 设置Y轴的标签旋转多少度

garph.title = '香蕉与苹果历年的销量分析'  # 设置图标题
garph.x_title = '年份'                 # 设置 X 轴标题
garph.y_title = '销量(吨)'            # 设置 Y 轴标题

garph.legend_at_bottom = True         # 设置图例位置(下面)

garph.margin = 35    # 设置页边距(margin_bottom、margin_top、margin_left、margin_right)

garph.show_x_guides = True    # 显示X轴的网格线
garph.show_y_guides = True    # 显示Y轴的网格线

garph.render_to_file('fruit.svg')    # 输出到图片文件

9.2 Python Pygal绘制叠加柱状图、叠加折线图、饼图与点图_第1张图片

(2)叠加折线图:Pygal.StackedLine()
garph = pygal.StackedLine()    # 创建图(叠加折线图)

garph.add('香蕉的历年销量', banana_data)
garph.add('苹果的历年销量', apple_data)

garph.x_labels = year_data
garph.y_label_rotation = 45

garph.title = '香蕉与苹果历年的销量分析'
garph.x_title = '年份'
garph.y_title = '销量(吨)'

garph.legend_at_bottom = True

garph.margin = 35

garph.show_x_guides = True
garph.show_y_guides = True

garph.render_to_file('fruit.svg')

9.2 Python Pygal绘制叠加柱状图、叠加折线图、饼图与点图_第2张图片

(3)水平叠加图
  • HorizontalStackedBar():水平叠加柱状图
  • HorizontalStackedLine():水平叠加折线图

2)点图:pygal.Dot ()

  • 点图使用点(圆)的大小来表示数值的大小
garph = pygal.Dot()     # 创建图(点图)

garph.add('香蕉的历年销量', banana_data)
garph.add('苹果的历年销量', apple_data)

garph.x_labels = year_data

garph.title = '香蕉与苹果历年的销量分析'
garph.x_title = '年份'
garph.y_title = '水果种类'

garph.y_label_rotation = 45

garph.legend_at_bottom = True

garph.margin = 35

garph.show_x_guides = True
garph.show_y_guides = False

garph.render_to_file('fruit.svg')

9.2 Python Pygal绘制叠加柱状图、叠加折线图、饼图与点图_第3张图片

3)饼图

(1)传统饼图:pygal.Pie()
import pygal

# 2018年8月编程语言的市场份额
data = {'Java':0.16881, 'c':0.14996, 'c++':0.07471, 'python':0.06992, 'VB.net':0.04762, 'c#':0.03541, 'PHP':0.02925, 'JavaScript':0.02411, 'SQL':0.06316, 'Assembly language':0.01409, '其他':0.36326}


graph = pygal.Pie()    # 创建图(饼图)

# 添加数据
for k in data.keys():
    graph.add(k, data[k])
    
graph.title = '2018年8月编程语言的市场份额'     # 设置图标题

graph.legend_at_bottom = True                  # 设置图例位置(下面)

graph.render_to_file('language.svg')            # 输出到图片文件

9.2 Python Pygal绘制叠加柱状图、叠加折线图、饼图与点图_第4张图片

(2)空心饼图
  • inner_radius:设置饼图的内圈半径
graph = pygal.Pie()

for k in data.keys():
    graph.add(k, data[k])
    
graph.title = '2018年8月编程语言的市场份额'

graph.legend_at_bottom = True

graph.inner_radius = 0.5     # 空心饼图

graph.render_to_file('language.svg')

9.2 Python Pygal绘制叠加柱状图、叠加折线图、饼图与点图_第5张图片

(3)半圆饼图
  • half_pie:设置为 True
graph = pygal.Pie()

for k in data.keys():
    graph.add(k, data[k])
    
graph.title = '2018年8月编程语言的市场份额'

graph.legend_at_bottom = True

graph.half_pie = True    # 半圆饼图

graph.render_to_file('language.svg')

9.2 Python Pygal绘制叠加柱状图、叠加折线图、饼图与点图_第6张图片

你可能感兴趣的:(疯狂python讲义)