基本配置
画任何图片之前,先运行下面这段代码,包括导包,调整字体,字号,清晰度等等.
1 | import pandas as pd |
线形图
以华数杯的这个线形图为例,同时这个代码也展示了怎么开双轴.
小tip:如果横坐标需要显示为整数,但却自动变为小数,可以把该坐标调成str格式.
1 | fig_wind,ax_wind = plt.subplots(figsize=(16,8)) |
效果如下:
堆叠图
1 | fig , ax = plt.subplots(figsize=(16,8)) |
效果如下:
比例图
比例图以封装成一个函数,画图时只用改变results和category_names
由于legend是放在图片外面,故图片真实大小不是(16,8),故调整为(22,11),字体也随之按比例改变
代码如下:
1 | category_names = ['Wildlife protection section','Natural reserve section','Ecological restoration section','Ecological compensation section'] |
效果如下:
热力图
和比例图类似,热力图中的字体大小也需要另外调整,现已经在函数中修改:
函数代码:
1 | def heatmap(data, row_labels, col_labels, ax=None, |
数据代码:
1 | # 每行的数据名 |
3D条形图
数据格式与数据导入方式:
1 | import pyecharts.options as opts |
可以用pyecharts画图,但是没有阴影,为了阴影效果,使用js来画:
用js画图,数据需要直接写出来,为了方便复制,下面提供一种把数据写入到txt文件的代码
1 | # 把hours_index 放到一个txt文件中: |
画图代码:
1 | // prettier-ignore |
效果如下:
色系表
色系 | 颜色1 | 颜色2 | 颜色3 | 颜色4 | 颜色5 |
---|---|---|---|---|---|
灰色系 | #353C3E | #7A7579 | #A59B95 | #DDD7D3 | #EFEDEC |
红色系 | #7E3527 | #A44A44 | #9B593E | #B47C74 | #D0B4A9 |
绿色系 | #535952 | #616153 | #7F8D7B | #9AA193 | #CADABD |
紫色系 | #723E58 | #8F7EAB | #8A7B93 | #A38FA3 | #D8D1E1 |
粉色系 | #D59DA5 | #CDA59E | #D5ACBE | #E8C2DB | #F1DADB |
蓝色系 | #475169 | #4B5C74 | #7D90A5 | #A1B2CC | #C6CEE2 |
褐色系 | #8E6A49 | #9F814E | #BCA272 | #D1BFAC | #E5CFBE |
黄色系 | #AB845E | #D3AE5B | #CDB97D | #EEECC3 | #FBEEDE |
橙色系 | #AF665A | #D3A56E | #CB9C7A | #E0C9B1 | #E7DFD7 |
色系 | 颜色1 | 颜色2 | 颜色3 | 颜色4 | 颜色5 |
---|---|---|---|---|---|
粉色 | #CF948E | #DE7E81 | #F5C6C6 | #F2B3CA | #F0C9D6 |
紫色 | #A1608C | #9B6F89 | #D9BCD6 | #E8E3EC | #EDEDEE |
蓝色 | #709ED0 | #ACBEDD | #C6CCDF | #DFE2E3 | #EFF2F7 |
靛色 | #3C979F | #A7D0D8 | #75A5B8 | #ABCCDD | #DBE1F0 |
绿色 | #416F5D | #638262 | #628D3D | #96B23C | #9CBB89 |
桃棕色 | #C64E2F | #C86A58 | #C46F4D | #CA8F7A | #F0C9BA |
红橙色 | #991B27 | #BD2630 | #E64F25 | #ED884C | #F1A183 |
现代色 | #7083A6 | #ADC0DA | #954B63 | #E094B2 | #EEACCB |
地图
地图主要使用folium包绘制
导包代码:
1 | import folium |
读取数据,初始化地图:
1 | archive = pd.read_csv('../data/dataset_of_vctria.csv') |
画圈函数:
1 | def pointpoint(m,latitude,longitude): |
栅格化函数:
1 | def grid_func(latitude_start,longitude_start,latitude_size,longitude_size,latitude_num,longitude_num,color,alpha,m): |
找到格子左下角坐标的函数(用于后续给格子填色)
1 | # 找到格子左下角坐标的函数: |
格子填色函数:
1 | # 结合这个函数,找到了需要染色的格子的左下标,就可以开始给格子染色了: |
热力图代码:
画热力图需要先获得包含经纬度的数据集
1 | # 经纬度数据: |
画标记:
1 | folium.Marker( |
效果如下:
网络图
网络图一般用Gephi来绘制
需要的数据类型为csv文件,一列为source(起点),一列为target(起点到达的点),一列为weight(边权重).
例如:
Gephi教程视频:
Gephi教程视频
AxGlyph
AxGlyph可以用来绘制一系列的示意图和物理图
Visio
常用网站
评论