原始文件(SVG文件,尺寸为2,754 × 1,398像素,文件大小:1.06 MB)


摘要

描述
English: Countries of the world by their work-week.
 
Monday - Friday
 
Monday - Saturday
 
Sunday - Thursday
 
Sunday - Friday
 
Saturday - Thursday
 
Monday - Thursday and Saturday
 
Mixed
This map is based on https://en.wikipedia.org/w/index.php?title=Workweek_and_weekend&oldid=858023057
日期
来源 自己的作品
作者 MartinThoma

Script to create the map:

#!/usr/bin/env python

# 3rd party modules
from lxml import etree
import mpu.pd


def main(filename="weekend.svg"):
    mon_fri = ['Dominican Republic', 'Lebanon', 'Serbia', 'Albania', 'Angola',
               'Argentina', 'Armenia', 'Azerbaijan', 'Austria', 'Australia',
               'Benin',
               'Belarus', 'Belgium', 'Brazil', 'Burundi', 'Bulgaria', 'Canada',
               'Cambodia', 'Cameroon', 'Chile', 'China', 'Croatia',
               'Costa Rica', 'Czech Republic', 'Denmark', 'Ethiopia',
               'Estonia', 'Finland', 'France', 'Gabon',
               'Gambia', 'Germany', 'Ghana', 'Greece', 'Hungary', 'Indonesia',
               'Ireland',
               'Italy', 'Côte d\'Ivoire', 'Japan', 'Kazakhstan', 'Kenya',
               'Lao People\'s Democratic Republic', 'Latvia', 'Lesotho',
               'Lithuania', 'Madagascar',
               'Malawi', 'Mali', 'Malta', 'Mauritania', 'Mongolia', 'Morocco',
               'Mozambique', 'Netherlands', 'New Zealand', 'Nigeria',
               'Norway',
               'Pakistan', 'Poland', 'Portugal', 'Romania', 'Russia', 'Rwanda',
               'Senegal',
               'Singapore', 'Slovakia', 'Spain', 'Sri Lanka',
               'South Africa', 'South Korea', 'Suriname', 'Swaziland',
               'Sweden', 'Switzerland',
               'Seychelles', 'Taiwan', 'Tanzania', 'Togo', 'Thailand',
               'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Ukraine',
               'United Kingdom', 'United States',
               'Vietnam', 'Congo (Democratic Republic of the)', 'Zambia',
               'Zimbabwe']
    mon_sat = ['Equatorial Guinea', 'Hong Kong', 'Mexico', 'Philippines',
               'Uganda', 'India', 'Colombia']
    sun_thu = ['Afghanistan', 'Algeria', 'Bahrain', 'Egypt', 'Iraq', 'Israel',
               'Jordan', 'Kuwait', 'Libya', 'Maldives', 'Oman', 'Qatar',
               'Saudi Arabia', 'Sudan', 'Syria', 'Yemen',
               'United Arab Emirates', 'Bangladesh']
    sat_thu = ['Djibouti', 'Palestine', 'Iran']
    sun_fri = ['Nepal']
    mon_thu_sat = ['Brunei Darussalam']
    mixed = ['Malaysia']

    countries = mpu.pd.countries
    countries = countries.set_index('English short name (upper/lower case)')
    country2dict = countries.to_dict('index')

    legend = [(mon_fri, '#B8D8D8'),
              (mon_sat, 'orange'),
              (sun_thu, '#4F6367'),
              (sat_thu, 'red'),
              (sun_fri, 'tomato'),
              (mon_thu_sat, '#ff00ff'),
              (mixed, '#00ffff')]

    colors = {}
    for collection, color in legend:
        for country in collection:
            if country in country2dict:
                code = country2dict[country]['Alpha-2 code'].lower()
                colors[code] = color
            else:
                print('Could not find the Alpha-2 code for \'{}\' in mpu'
                      .format(country))

    tree = read_svg(filename)
    root = tree.getroot()
    for country_id in colors.keys():
        element = root.xpath('//*[@id="{}"]'.format(country_id))
        if len(element) == 1:
            element = element[0]
            element.set("style", 'fill: {};'.format(colors[country_id]))
            for el in element.getchildren():
                el.set("style", 'fill: {};'.format(colors[country_id]))
        else:
            print("Wrong length for id={}".format(country_id))
    write_svg(root)


def read_svg(filename):
    """
    Read an SVG file.

    Parameters
    ----------
    filename : str

    Returns
    -------
    tree : lxml.ElementTree
    """
    with open(filename, 'r') as f:
        tree = etree.parse(f)
    return tree


def write_svg(root, filename='weekend-auto.svg'):
    """
    Read an SVG file.

    Parameters
    ----------
    root : lxml.Element
    filename : str
    """
    etree.ElementTree(root).write(filename, pretty_print=True)


if __name__ == '__main__':
    main()

许可协议

我,本作品著作权人,特此采用以下许可协议发表本作品:
Creative Commons CC-Zero 本作品采用知识共享CC0 1.0 通用公有领域贡献许可协议授权。
采用本宣告发表本作品的人,已在法律允许的范围内,通过在全世界放弃其对本作品拥有的著作权法规定的所有权利(包括所有相关权利),将本作品贡献至公有领域。您可以复制、修改、传播和表演本作品,将其用于商业目的,无需要求授权。

说明

添加一行文字以描述该文件所表现的内容

此文件中描述的项目

描繪內容

image/svg+xml

文件历史

点击某个日期/时间查看对应时刻的文件。

日期/时间缩⁠略⁠图大小用户备注
当前2023年9月29日 (五) 12:142023年9月29日 (五) 12:14版本的缩略图2,754 × 1,398(1.06 MB)VyvagabaChanged the file to an svg file that is more easily editable, addressed some recent updates and missing data.
2023年9月29日 (五) 12:122023年9月29日 (五) 12:12版本的缩略图2,560 × 1,314(1.09 MB)VyvagabaReverted to version as of 19:41, 4 September 2018 (UTC)
2023年9月29日 (五) 12:072023年9月29日 (五) 12:07版本的缩略图2,754 × 1,398(1.06 MB)VyvagabaChanged the file to an svg file that is more easily editable, addressed some recent updates and missing data.
2018年9月4日 (二) 19:412018年9月4日 (二) 19:41版本的缩略图2,560 × 1,314(1.09 MB)MartinThomaUser created page with UploadWizard

以下2个页面使用本文件:

全域文件用途

以下其他wiki使用此文件:

元数据