如果你有基础,英语也凑合,那直接看官网就好
官网链接:http://www.pygal.org/en/stable/
看官网,最靠谱
安装库
如果你连Python
都没有,我想拍你,但是舍不得
给你安装链接:
https://www.liaoxuefeng.com/wiki/1016959663602400/1016959856222624
(这是廖雪峰网站上给出的安装说明,给大家推荐他的Python教程,感觉很棒)
如果是默认的IDLE
编辑器,打开命令提示符(附件——命令提示符)
如果是
Spyder
编辑器,打开Anaconda
下的命令提示符
界面如下
输入
pip install pygal
,安装pygal
的库
pip install pygal
接着依次安装一些依赖库,这些依赖库主要是为了渲染的效果。就按顺序敲进去,输完一个,等待安装,然后再等下一个。
pip install lxml
pip install cairosvg
pip install tinycss
pip install cssselect
装好之后,如果你不放心,怕自己没装好。你可以重新输一遍代码。
以pygal
为例,输入pip install pygal
显示已经satisfied,就表明已经成功安装好了
开始作图
import pygal
# First import
pygalbar_chart = pygal.Bar()
# Then create a bar graph object
bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55])
# Add some values
bar_chart.render_to_file('bar_chart.svg')
# Save the svg to a file
解释一下这个代码:
- 把
pygal
这个模块导入,import
进来 - 建立一个柱状图,关键词是
Bar
。这个图定义为bar_chart
,这个名称你可以随意换,但是pygal.Bar()
这部分你不准动 - 用
add
添加数据,为'Fibonacci'
添加数据,这个内容你也可以随便改 - 把得到的图像保存为
svg
格式,存到当前的目录下面(就是和你代码在一个目录下面),保存的文件名就是ar_chart.svg
,这个名字你也可以随便改 - 如果你想保存一个
png
的图片格式,不想要svg
格式,那你可以把最后一行代码改成
line_chart.render_to_png('bar_chart.png')
双击你刚刚保存好的bar_chart.svg
,在任意浏览器,你就可以看到你刚刚画的柱状图
就这么简单的搞定啦~
下面,进阶一点点
我有好几组数据怎么办?多add
几回
bar_chart = pygal.Bar()
bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55])
bar_chart.add('Padovan', [1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12])
bar_chart.render()
可以看到你添加的数据,和你输入的数据名称是对应的
这个柱状图不好看,我要换一种
bar_chart = pygal.HorizontalStackedBar()
bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55])
bar_chart.add('Padovan', [1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12])
bar_chart.render()
- 注意看,把第一行,
pygal.
后面的内容替换,不同的关键词,对应不同的图形。
比如这里我们把原来的Bar
换成HorizontalStackedBar
,这里如果你英语还不错的话,那HorizontalStackedBar
就是Horizontal Stacked Bar,水平堆积条形图 -
其他代码一个字没变
下面,添加标题和坐标轴
bar_chart = pygal.HorizontalStackedBar()
bar_chart.title = "Remarquable sequences"
bar_chart.x_labels = map(str, range(11))
bar_chart.add('Fibonacci', [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55])
bar_chart.add('Padovan', [1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12])
bar_chart.render()
Python很简单易懂,标题,就是title
;横坐标,就是x_labels
。
再来看我们得到的图,这些信息就都有啦
作为图表初学者,现在,我们已经会画图了
那么,我们应该选择哪一种类型的图表呢?
图表类型
下面,我们来汇总一下,pygal有多少的图表
再次附上官网链接,官网啥都有
Chart types:
http://www.pygal.org/en/stable/documentation/types/index.html#chart-types
这里把代表图表类别的代码列给大家,后续的参数设计,都是一样的
如果对代码还是不熟悉,可以点击任意图表类型的关键词,跳转到官网,有很详细代码
有几点需要注意:
- 所有的代码,你都要
import pygal
- 当你的代码需要一些其他数据的时候,你需要导入相应的模块,比如;
from datetime import datetime # 你需要日期参数
from math import cos # 你需要用到cos函数
- import后面的内容,要根据你数据的需要,选择合适的库。具体可以看官网的例子
下面开始汇总
Line | 图表 |
---|---|
Basic | line_chart = pygal.Line() |
Horizontal Line | line_chart = pygal.HorizontalLine() |
Stacked | line_chart = pygal.StackedLine(fill=True) |
Time | date_chart = pygal.Line(x_label_rotation=20) |
None values |
Bar | 图表 |
---|---|
Basic | line_chart = pygal.Bar() |
Stacked | line_chart = pygal.StackedBar() |
Horizontal | line_chart = pygal.HorizontalBar() |
Histogram | 图表 |
---|---|
Basic | hist = pygal.Histogram() |
XY | 图表 |
---|---|
Basic | xy_chart = pygal.XY() |
Scatter Plot | xy_chart = pygal.XY(stroke=False) |
Dates | datetimeline = pygal.DateTimeLine() |
None values | 参考Line部分 |
Pie | 图表 |
---|---|
Basic | pie_chart = pygal.Pie() |
Multi-series pie | pie_chart = pygal.Pie() |
Donut | pie_chart = pygal.Pie(inner_radius=.4) |
Half pie | pie_chart = pygal.Pie(half_pie=True) |
Radar | 图表 |
---|---|
Basic | radar_chart = pygal.Radar() |
Box | 图表 |
---|---|
Extremes (default) | box_plot = pygal.Box() |
1.5 interquartile range | box_plot = pygal.Box(box_mode="1.5IQR") |
Tukey | box_plot = pygal.Box(box_mode="tukey") |
Standard deviation | box_plot = pygal.Box(box_mode="stdev") |
Population standard deviation | box_plot = pygal.Box(box_mode="pstdev") |
Dot | 图表 |
---|---|
Basic | dot_chart = pygal.Dot(x_label_rotation=30) |
Negative | dot_chart = pygal.Dot(x_label_rotation=30) |
Funnel | 图表 |
---|---|
Basic | funnel_chart = pygal.Funnel() |
SolidGauge | 图表 |
---|---|
Normal | gauge = pygal.SolidGauge(inner_radius=0.70) |
Half | gauge = pygal.SolidGauge( half_pie=True, inner_radius=0.70, style=pygal.style.styles'default') |
Gauge | 图表 |
---|---|
Basic | gauge_chart = pygal.Gauge(human_readable=True) |
Pyramid | 图表 |
---|---|
Basic | pyramid_chart = pygal.Pyramid(human_readable=True, legend_at_bottom=True) |
Treemap | 图表 |
---|---|
Basic | treemap = pygal.Treemap() |
Maps部分需要注意,不同的maps需要不同的库,需要根据前面的方法,安装这些库
- World map:pip install pygal_maps_world
- French map:pip install pygal_maps_fr
- Swiss map:pip install pygal_maps_ch
Maps | 图表 |
---|---|
World map | supra = pygal.maps.world.SupranationalWorld() |
French map | fr_chart = pygal.maps.fr.Departments(human_readable=True) |
Swiss map | ch_chart = pygal.maps.ch.Cantons() |
最后
这里只汇总了图表类型,所有的图表,颜色都是默认的
(默认的都这么好看了!)
所有图表可以进行颜色修改、背景修改等等,色系都是可以选择的
让我们一起画出好看的图~~
网友评论