Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
matplotlib-doc-zh
提交
11cf97c0
M
matplotlib-doc-zh
项目概览
OpenDocCN
/
matplotlib-doc-zh
8 个月 前同步成功
通知
0
Star
192
Fork
111
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
matplotlib-doc-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
11cf97c0
编写于
1月 29, 2017
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
gitbook
上级
cfd2b600
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
348 addition
and
16 deletion
+348
-16
.gitignore
.gitignore
+1
-0
3.5.md
3.5.md
+16
-16
README.md
README.md
+17
-0
glossary.md
glossary.md
+30
-0
styles/ebook.css
styles/ebook.css
+284
-0
未找到文件。
.gitignore
0 → 100644
浏览文件 @
11cf97c0
_book
3.5.md
浏览文件 @
11cf97c0
...
...
@@ -8,7 +8,7 @@
matplotlib API 有三个层级。
`matplotlib.backend_bases.FigureCanvas`
是绘制图形的区域,
`matplotlib.backend_bases.Renderer`
是知道如何在
`ChartCanvas`
上绘制的对象,而
`matplotlib.artist.Artist`
是知道如何使用渲染器在画布上画图的对象。
`FigureCanvas`
和
`Renderer`
处理与用户界面工具包(如 wxPython)或 PostScript® 等绘图语言交互的所有细节,
`Artist`
处理所有高级结构,如表示和布局图形,文本和线条。用户通常要花费95%的时间来处理艺术家。
有两种类型的艺术家:基本类型和容器类型。基本类型表示我们想要绘制到画布上的标准图形对象:
`Line2D`
,
`Rectangle`
,
`Text`
,
`AxesImage`
等,容器是放置它们的位置(
`Axis`
,
`Axes`
和
`Figure`
)。标准用法是创建一个
`Figure`
实例,使用
`Figure`
创建一个或多个
`Axes`
或
`Subplot`
实例,并使用
`Axes`
实例的辅助方法来创建基本类型。在下面的示例中,我们使用
`matplotlib.pyplot.figure()`
创建一个
`Figure`
实例,这是一个便捷的方法,用于实例化
`Figure`
实例并将它们与
您
的用户界面或绘图工具包
`FigureCanvas`
连接。正如我们将在下面讨论的,这不是必须的 - 你可以直接使用 PostScript,PDF,Gtk+ 或 wxPython
`FigureCanvas`
实例,直接实例化你的图形并连接它们 - 但是因为我们在这里关注艺术家 API,我们让
`pyplot`
为我们处理一些细节:
有两种类型的艺术家:基本类型和容器类型。基本类型表示我们想要绘制到画布上的标准图形对象:
`Line2D`
,
`Rectangle`
,
`Text`
,
`AxesImage`
等,容器是放置它们的位置(
`Axis`
,
`Axes`
和
`Figure`
)。标准用法是创建一个
`Figure`
实例,使用
`Figure`
创建一个或多个
`Axes`
或
`Subplot`
实例,并使用
`Axes`
实例的辅助方法来创建基本类型。在下面的示例中,我们使用
`matplotlib.pyplot.figure()`
创建一个
`Figure`
实例,这是一个便捷的方法,用于实例化
`Figure`
实例并将它们与
你
的用户界面或绘图工具包
`FigureCanvas`
连接。正如我们将在下面讨论的,这不是必须的 - 你可以直接使用 PostScript,PDF,Gtk+ 或 wxPython
`FigureCanvas`
实例,直接实例化你的图形并连接它们 - 但是因为我们在这里关注艺术家 API,我们让
`pyplot`
为我们处理一些细节:
```
py
import
matplotlib.pyplot
as
plt
...
...
@@ -16,7 +16,7 @@ fig = plt.figure()
ax
=
fig
.
add_subplot
(
2
,
1
,
1
)
# two rows, one column, first plot
```
`Axes`
可能是 matplotlib API 中最重要的类,你将在大多数时间使用它。 这是因为
`Axes`
是大多数对象所进入的绘图区域,
`Axes`
有许多特殊的辅助方法(
`plot()`
,
`text()`
,
`hist()`
,
`imshow()`
)来创建最常见的图形基本类型
`Line2D`
,
`Text`
,
`Rectangle`
,
`Image`
)。 这些辅助方法将获取
您
的数据(例如 numpy 数组和字符串),并根据需要创建基本
`Artist`
实例(例如,
`Line2D`
),将它们添加到相关容器中,并在请求时绘制它们。 大多数人可能熟悉子图,这只是
`Axes`
的一个特例,它存在于
`Subplot`
实例的列网格的固定行上。 如果要在任意位置创建
`Axes`
,只需使用
`add_axes()`
方法,该方法接受
`[left, bottom, width, height]`
值的列表,以 0~1 的图形相对坐标为单位:
`Axes`
可能是 matplotlib API 中最重要的类,你将在大多数时间使用它。 这是因为
`Axes`
是大多数对象所进入的绘图区域,
`Axes`
有许多特殊的辅助方法(
`plot()`
,
`text()`
,
`hist()`
,
`imshow()`
)来创建最常见的图形基本类型
`Line2D`
,
`Text`
,
`Rectangle`
,
`Image`
)。 这些辅助方法将获取
你
的数据(例如 numpy 数组和字符串),并根据需要创建基本
`Artist`
实例(例如,
`Line2D`
),将它们添加到相关容器中,并在请求时绘制它们。 大多数人可能熟悉子图,这只是
`Axes`
的一个特例,它存在于
`Subplot`
实例的列网格的固定行上。 如果要在任意位置创建
`Axes`
,只需使用
`add_axes()`
方法,该方法接受
`[left, bottom, width, height]`
值的列表,以 0~1 的图形相对坐标为单位:
```
PY
fig2 = plt.figure()
...
...
@@ -32,7 +32,7 @@ s = np.sin(2*np.pi*t)
line
,
=
ax
.
plot
(
t
,
s
,
color
=
'blue'
,
lw
=
2
)
```
在这个例子中,
`ax`
是上面的
`fig.add_subplot`
调用创建的
`Axes`
实例(记住
`Subplot`
只是
`Axes`
的一个子类),当你调用
`ax.plot`
时,它创建一个
`Line2D`
实例并将其添加到
`Axes.lines`
列表中。 在下面的 ipython 交互式会话中,
您
可以看到
`Axes.lines`
列表的长度为 1,并且包含由
`line, = ax.plot... `
调用返回的相同线条:
在这个例子中,
`ax`
是上面的
`fig.add_subplot`
调用创建的
`Axes`
实例(记住
`Subplot`
只是
`Axes`
的一个子类),当你调用
`ax.plot`
时,它创建一个
`Line2D`
实例并将其添加到
`Axes.lines`
列表中。 在下面的 ipython 交互式会话中,
你
可以看到
`Axes.lines`
列表的长度为 1,并且包含由
`line, = ax.plot... `
调用返回的相同线条:
```
py
In
[
101
]:
ax
.
lines
[
0
]
...
...
@@ -42,7 +42,7 @@ In [102]: line
Out
[
102
]:
<
matplotlib
.
lines
.
Line2D
instance
at
0x19a95710
>
```
如果
您对
`ax.plot`
进行连续调用(并且保持状态为“on”,这是默认值),则将在列表中添加其他线条。 您
可以稍后通过调用列表方法删除线条;任何一个方法都可以:
如果
你对
`ax.plot`
进行连续调用(并且保持状态为『on』,这是默认值),则将在列表中添加其他线条。 你
可以稍后通过调用列表方法删除线条;任何一个方法都可以:
```
py
del
ax
.
lines
[
0
]
...
...
@@ -64,7 +64,7 @@ ytext = ax.set_ylabel('my ydata')
## 自定义你的对象
图中的每个元素都由一个 matplotlib 艺术家表示,每个元素都有一个扩展属性列表用于配置它的外观。 图形本身包含一个
`Rectangle`
,正好是图形的大小,你可以使用它来设置图形的背景颜色和透明度。 同样,每个
`Axes`
边框(在通常的 matplotlib 绘图中是标准的白底黑边)拥有一个
`Rectangle`
实例,用于确定轴域的颜色,透明度和其他属性,这些实例存储为成员变量
`Figure.patch`
和
`Axes.patch`
(
“Patch”是一个继承自 MATLAB 的名称,它是图形上的一个颜色的 2D“补丁”
,例如矩形,圆和多边形)。每个 matplotlib 艺术家都有以下属性。
图中的每个元素都由一个 matplotlib 艺术家表示,每个元素都有一个扩展属性列表用于配置它的外观。 图形本身包含一个
`Rectangle`
,正好是图形的大小,你可以使用它来设置图形的背景颜色和透明度。 同样,每个
`Axes`
边框(在通常的 matplotlib 绘图中是标准的白底黑边)拥有一个
`Rectangle`
实例,用于确定轴域的颜色,透明度和其他属性,这些实例存储为成员变量
`Figure.patch`
和
`Axes.patch`
(
『Patch』是一个继承自 MATLAB 的名称,它是图形上的一个颜色的 2D『补丁』
,例如矩形,圆和多边形)。每个 matplotlib 艺术家都有以下属性。
| 属性 | 描述 |
| --- | --- |
...
...
@@ -127,16 +127,16 @@ In [149]: matplotlib.artist.getp(fig.patch)
zorder
=
1
```
所有类的文档字符串也包含
`Artist`
属性,因此
您可以查阅交互式“帮助”
或
[
`Artist`模块
](
http://matplotlib.org/api/artist_api.html#artist-api
)
,来获取给定对象的属性列表。
所有类的文档字符串也包含
`Artist`
属性,因此
你可以查阅交互式『帮助』
或
[
`Artist`模块
](
http://matplotlib.org/api/artist_api.html#artist-api
)
,来获取给定对象的属性列表。
## 对象容器
现在我们知道如何检查和设置我们想要配置的给定对象的属性,现在我们需要如何获取该对象。 前面提到了两种对象:基本类型和容器类型。 基本类型通常是你想要配置的东西(
`Text`
实例的字体,
`Line2D`
的宽度),虽然容器也有一些属性 - 例如
`Axes`
是一个容器艺术家,包含你的绘图中的许多基本类型,但它也有属性,比如
`xscale`
来控制
`xaxis`
是
“线性”还是“对数”。 在本节中,我们将回顾各种容器对象存储您
想要访问的艺术家的位置。
现在我们知道如何检查和设置我们想要配置的给定对象的属性,现在我们需要如何获取该对象。 前面提到了两种对象:基本类型和容器类型。 基本类型通常是你想要配置的东西(
`Text`
实例的字体,
`Line2D`
的宽度),虽然容器也有一些属性 - 例如
`Axes`
是一个容器艺术家,包含你的绘图中的许多基本类型,但它也有属性,比如
`xscale`
来控制
`xaxis`
是
『线性』还是『对数』。 在本节中,我们将回顾各种容器对象存储你
想要访问的艺术家的位置。
## 图形容器
顶层容器艺术家是
`matplotlib.figure.Figure`
,它包含图形中的所有内容。 图形的背景是一个
`Rectangle`
,存储在
`Figure.patch`
中。 当
您
向图形中添加子图(
`add_subplot()`
)和轴域(
`add_axes()`
)时,这些会附加到
`Figure.axes`
。 它们也由创建它们的方法返回:
顶层容器艺术家是
`matplotlib.figure.Figure`
,它包含图形中的所有内容。 图形的背景是一个
`Rectangle`
,存储在
`Figure.patch`
中。 当
你
向图形中添加子图(
`add_subplot()`
)和轴域(
`add_axes()`
)时,这些会附加到
`Figure.axes`
。 它们也由创建它们的方法返回:
```
py
In
[
156
]:
fig
=
plt
.
figure
()
...
...
@@ -152,16 +152,16 @@ In [160]: print fig.axes
[
<
matplotlib
.
axes
.
Subplot
instance
at
0xd54b26c
>
,
<
matplotlib
.
axes
.
Axes
instance
at
0xd3f0b2c
>
]
```
因为图形维护了
“当前轴域”(见
`figure.gca`
和图
`figure.sca`
)的概念以支持 pylab/pyplot 状态机,所以不应直接从轴域列表中插入或删除轴域,而应使用
`add_subplot()`
和
`add_axes()`
方法进行插入,并使用
`delaxes()`
方法进行删除。 然而,您
可以自由地遍历轴域列表或索引,来访问要自定义的
`Axes`
实例。 下面是一个打开所有轴域网格的示例:
因为图形维护了
『当前轴域』(见
`figure.gca`
和图
`figure.sca`
)的概念以支持 pylab/pyplot 状态机,所以不应直接从轴域列表中插入或删除轴域,而应使用
`add_subplot()`
和
`add_axes()`
方法进行插入,并使用
`delaxes()`
方法进行删除。 然而,你
可以自由地遍历轴域列表或索引,来访问要自定义的
`Axes`
实例。 下面是一个打开所有轴域网格的示例:
```
py
for
ax
in
fig
.
axes
:
ax
.
grid
(
True
)
```
图形还拥有自己的文本,线条,补丁和图像,
您可以使用它们直接添加基本类型。 图形的默认坐标系统简单地以像素(这通常不是你想要的)为单位,但你可以通过设置您
添加到图中的艺术家的
`transform`
属性来控制它。
图形还拥有自己的文本,线条,补丁和图像,
你可以使用它们直接添加基本类型。 图形的默认坐标系统简单地以像素(这通常不是你想要的)为单位,但你可以通过设置你
添加到图中的艺术家的
`transform`
属性来控制它。
更有用的是
“图形坐标系”,其中
`(0,0)`
是图的左下角,
`(1,1)`
是图的右上角,您
可以通过将
`Artist`
的变换设置为
`fig.transFigure`
来获得:
更有用的是
『图形坐标系』,其中
`(0,0)`
是图的左下角,
`(1,1)`
是图的右上角,你
可以通过将
`Artist`
的变换设置为
`fig.transFigure`
来获得:
```
py
In
[
191
]:
fig
=
plt
.
figure
()
...
...
@@ -202,7 +202,7 @@ rect = ax.patch # a Rectangle instance
rect
.
set_facecolor
(
'green'
)
```
当调用绘图方法(例如通常是
`plot()`
)并传递数组或值列表时,该方法将创建一个
`matplotlib.lines.Line2D()`
实例,将所有
`Line2D`
属性作为关键字参数传递, 将该线条添加到
`Axes.lines`
容器,并将其返回给
您
:
当调用绘图方法(例如通常是
`plot()`
)并传递数组或值列表时,该方法将创建一个
`matplotlib.lines.Line2D()`
实例,将所有
`Line2D`
属性作为关键字参数传递, 将该线条添加到
`Axes.lines`
容器,并将其返回给
你
:
```
py
In
[
213
]:
x
,
y
=
np
.
random
.
rand
(
2
,
100
)
...
...
@@ -228,7 +228,7 @@ Out[234]: <a list of 50 Patch objects>
In
[
235
]:
print
len
(
ax
.
patches
)
```
你不应该直接将对象添加到
`Axes.lines`
或
`Axes.patches`
列表,除非你确切知道你在做什么,因为
`Axes`
需要在它创建和添加对象做一些事情。 它设置
`Artist`
的
`figure`
和
`axes`
属性,以及默认
`Axes`
变换(除非设置了变换)。 它还检查
`Artist`
中包含的数据,来更新控制自动缩放的数据结构,以便可以调整视图限制来包含绘制的数据。 但是,
您
可以自己创建对象,并使用辅助方法(如
`add_line()`
和
`add_patch()`
)将它们直接添加到
`Axes`
。 这里是一个注释的交互式会话,说明正在发生什么:
你不应该直接将对象添加到
`Axes.lines`
或
`Axes.patches`
列表,除非你确切知道你在做什么,因为
`Axes`
需要在它创建和添加对象做一些事情。 它设置
`Artist`
的
`figure`
和
`axes`
属性,以及默认
`Axes`
变换(除非设置了变换)。 它还检查
`Artist`
中包含的数据,来更新控制自动缩放的数据结构,以便可以调整视图限制来包含绘制的数据。 但是,
你
可以自己创建对象,并使用辅助方法(如
`add_line()`
和
`add_patch()`
)将它们直接添加到
`Axes`
。 这里是一个注释的交互式会话,说明正在发生什么:
```
py
In
[
261
]:
fig
=
plt
.
figure
()
...
...
@@ -297,7 +297,7 @@ In [274]: ax.figure.canvas.draw()
|
`ax.scatter`
- 散点图 |
`PolygonCollection`
|
`ax.collections`
|
|
`ax.text`
- 文本 |
`Text`
|
`ax.texts`
|
除了所有这些艺术家,
`Axes`
包含两个重要的艺术家容器:
`XAxis`
和
`YAxis`
,它们处理刻度和标签的绘制。 它们被存储为实例变量
`xaxis`
和
`yaxis`
。
`XAxis`
和
`YAxis`
容器将在下面详细介绍,但请注意,
`Axes`
包含许多辅助方法,它们会将调用转发给
`Axis`
实例,因此
您通常不需要直接使用它们,除非您愿意。 例如,您
可以使用
`Axes`
辅助程序方法设置
`XAxis`
刻度标签的字体大小:
除了所有这些艺术家,
`Axes`
包含两个重要的艺术家容器:
`XAxis`
和
`YAxis`
,它们处理刻度和标签的绘制。 它们被存储为实例变量
`xaxis`
和
`yaxis`
。
`XAxis`
和
`YAxis`
容器将在下面详细介绍,但请注意,
`Axes`
包含许多辅助方法,它们会将调用转发给
`Axis`
实例,因此
你通常不需要直接使用它们,除非你愿意。 例如,你
可以使用
`Axes`
辅助程序方法设置
`XAxis`
刻度标签的字体大小:
```
py
for
label
in
ax
.
get_xticklabels
():
...
...
@@ -321,9 +321,9 @@ for label in ax.get_xticklabels():
## 轴容器
`matplotlib.axis.Axis`
实例处理刻度线,网格线,刻度标签和轴标签的绘制。
您
可以分别为y轴配置左和右刻度,为x轴分别配置上和下刻度。
`Axis`
还存储在自动缩放,平移和缩放中使用的数据和视图间隔,以及
`Locator`
和
`Formatter`
实例,它们控制刻度位置以及它们表示为字符串的方式。
`matplotlib.axis.Axis`
实例处理刻度线,网格线,刻度标签和轴标签的绘制。
你
可以分别为y轴配置左和右刻度,为x轴分别配置上和下刻度。
`Axis`
还存储在自动缩放,平移和缩放中使用的数据和视图间隔,以及
`Locator`
和
`Formatter`
实例,它们控制刻度位置以及它们表示为字符串的方式。
每个
`Axis`
对象都包含一个
`label`
属性(这是 pylab 在调用
`xlabel()`
和
`ylabel()`
时修改的东西)以及主和次刻度的列表。刻度是
`XTick`
和
`YTick`
实例,它包含渲染刻度和刻度标签的实际线条和文本基本类型。因为刻度是按需动态创建的(例如,当平移和缩放时),
您
应该通过访问器方法
`get_major_ticks()`
和
`get_minor_ticks()`
访问主和次刻度的列表。虽然刻度包含所有下面要提及的基本类型,
`Axis`
方法包含访问器方法来返回刻度线,刻度标签,刻度位置等:
每个
`Axis`
对象都包含一个
`label`
属性(这是 pylab 在调用
`xlabel()`
和
`ylabel()`
时修改的东西)以及主和次刻度的列表。刻度是
`XTick`
和
`YTick`
实例,它包含渲染刻度和刻度标签的实际线条和文本基本类型。因为刻度是按需动态创建的(例如,当平移和缩放时),
你
应该通过访问器方法
`get_major_ticks()`
和
`get_minor_ticks()`
访问主和次刻度的列表。虽然刻度包含所有下面要提及的基本类型,
`Axis`
方法包含访问器方法来返回刻度线,刻度标签,刻度位置等:
```
py
In
[
285
]:
axis
=
ax
.
xaxis
...
...
README.md
0 → 100644
浏览文件 @
11cf97c0
# Matplotlib 用户指南
> 来源:[User's Guide](http://matplotlib.org/users/index.html)
> 译者:[飞龙](https://github.com/)
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
+
[
在线阅读
](
https://www.gitbook.com/book/wizardforcel/matplotlib-user-guide/details
)
+
[
PDF格式
](
https://www.gitbook.com/download/pdf/book/wizardforcel/matplotlib-user-guide
)
+
[
EPUB格式
](
https://www.gitbook.com/download/epub/book/wizardforcel/matplotlib-user-guide
)
+
[
MOBI格式
](
https://www.gitbook.com/download/mobi/book/wizardforcel/matplotlib-user-guide
)
+
[
代码仓库
](
https://github.com/wizardforcel/matplotlib-user-guide-zh
)
## 赞助我
![](
http://upload-images.jianshu.io/upload_images/118142-fe132ca3591a3d52.png
)
\ No newline at end of file
glossary.md
0 → 100644
浏览文件 @
11cf97c0
## 术语表
| 英文 | 中文 |
| --- | --- |
| Annotation | 标注 |
| Artist | 艺术家 |
| Axes | 轴域 |
| Axis | 轴/坐标轴 |
| Bézier | 贝塞尔 |
| Coordinate | 坐标 |
| Coordinate System | 坐标系 |
| Figure | 图形 |
| Handle | 句柄 |
| Handler | 处理器 |
| Image | 图像 |
| Legend | 图例 |
| Line | 线条 |
| Patch | 补丁 |
| Path | 路径 |
| Pick | 拾取 |
| Subplot | 子图 |
| Text | 文本 |
| Tick | 刻度 |
| Tick Label | 刻度标签 |
| Transformation | 变换 |
styles/ebook.css
0 → 100644
浏览文件 @
11cf97c0
/* GitHub stylesheet for MarkdownPad (http://markdownpad.com) */
/* Author: Nicolas Hery - http://nicolashery.com */
/* Version: b13fe65ca28d2e568c6ed5d7f06581183df8f2ff */
/* Source: https://github.com/nicolahery/markdownpad-github */
/* RESET
=============================================================================*/
html
,
body
,
div
,
span
,
applet
,
object
,
iframe
,
h1
,
h2
,
h3
,
h4
,
h5
,
h6
,
p
,
blockquote
,
pre
,
a
,
abbr
,
acronym
,
address
,
big
,
cite
,
code
,
del
,
dfn
,
em
,
img
,
ins
,
kbd
,
q
,
s
,
samp
,
small
,
strike
,
strong
,
sub
,
sup
,
tt
,
var
,
b
,
u
,
i
,
center
,
dl
,
dt
,
dd
,
ol
,
ul
,
li
,
fieldset
,
form
,
label
,
legend
,
table
,
caption
,
tbody
,
tfoot
,
thead
,
tr
,
th
,
td
,
article
,
aside
,
canvas
,
details
,
embed
,
figure
,
figcaption
,
footer
,
header
,
hgroup
,
menu
,
nav
,
output
,
ruby
,
section
,
summary
,
time
,
mark
,
audio
,
video
{
margin
:
0
;
padding
:
0
;
border
:
0
;
}
/* BODY
=============================================================================*/
body
{
font-family
:
Helvetica
,
arial
,
freesans
,
clean
,
sans-serif
;
font-size
:
14px
;
line-height
:
1.6
;
color
:
#333
;
background-color
:
#fff
;
padding
:
20px
;
max-width
:
960px
;
margin
:
0
auto
;
}
body
>*
:first-child
{
margin-top
:
0
!important
;
}
body
>*
:last-child
{
margin-bottom
:
0
!important
;
}
/* BLOCKS
=============================================================================*/
p
,
blockquote
,
ul
,
ol
,
dl
,
table
,
pre
{
margin
:
15px
0
;
}
/* HEADERS
=============================================================================*/
h1
,
h2
,
h3
,
h4
,
h5
,
h6
{
margin
:
20px
0
10px
;
padding
:
0
;
font-weight
:
bold
;
-webkit-font-smoothing
:
antialiased
;
}
h1
tt
,
h1
code
,
h2
tt
,
h2
code
,
h3
tt
,
h3
code
,
h4
tt
,
h4
code
,
h5
tt
,
h5
code
,
h6
tt
,
h6
code
{
font-size
:
inherit
;
}
h1
{
font-size
:
24px
;
border-bottom
:
1px
solid
#ccc
;
color
:
#000
;
}
h2
{
font-size
:
18px
;
color
:
#000
;
}
h3
{
font-size
:
14px
;
}
h4
{
font-size
:
14px
;
}
h5
{
font-size
:
14px
;
}
h6
{
color
:
#777
;
font-size
:
14px
;
}
body
>
h2
:first-child
,
body
>
h1
:first-child
,
body
>
h1
:first-child
+
h2
,
body
>
h3
:first-child
,
body
>
h4
:first-child
,
body
>
h5
:first-child
,
body
>
h6
:first-child
{
margin-top
:
0
;
padding-top
:
0
;
}
a
:first-child
h1
,
a
:first-child
h2
,
a
:first-child
h3
,
a
:first-child
h4
,
a
:first-child
h5
,
a
:first-child
h6
{
margin-top
:
0
;
padding-top
:
0
;
}
h1
+
p
,
h2
+
p
,
h3
+
p
,
h4
+
p
,
h5
+
p
,
h6
+
p
{
margin-top
:
10px
;
}
/* LINKS
=============================================================================*/
a
{
color
:
#4183C4
;
text-decoration
:
none
;
}
a
:hover
{
text-decoration
:
underline
;
}
/* LISTS
=============================================================================*/
ul
,
ol
{
padding-left
:
30px
;
}
ul
li
>
:first-child
,
ol
li
>
:first-child
,
ul
li
ul
:first-of-type
,
ol
li
ol
:first-of-type
,
ul
li
ol
:first-of-type
,
ol
li
ul
:first-of-type
{
margin-top
:
0px
;
}
ul
ul
,
ul
ol
,
ol
ol
,
ol
ul
{
margin-bottom
:
0
;
}
dl
{
padding
:
0
;
}
dl
dt
{
font-size
:
14px
;
font-weight
:
bold
;
font-style
:
italic
;
padding
:
0
;
margin
:
15px
0
5px
;
}
dl
dt
:first-child
{
padding
:
0
;
}
dl
dt
>
:first-child
{
margin-top
:
0px
;
}
dl
dt
>
:last-child
{
margin-bottom
:
0px
;
}
dl
dd
{
margin
:
0
0
15px
;
padding
:
0
15px
;
}
dl
dd
>
:first-child
{
margin-top
:
0px
;
}
dl
dd
>
:last-child
{
margin-bottom
:
0px
;
}
/* CODE
=============================================================================*/
pre
,
code
,
tt
{
font-size
:
12px
;
font-family
:
Consolas
,
"Liberation Mono"
,
Courier
,
monospace
;
}
code
,
tt
{
margin
:
0
0px
;
padding
:
0px
0px
;
white-space
:
nowrap
;
border
:
1px
solid
#eaeaea
;
background-color
:
#f8f8f8
;
border-radius
:
3px
;
}
pre
>
code
{
margin
:
0
;
padding
:
0
;
white-space
:
pre
;
border
:
none
;
background
:
transparent
;
}
pre
{
background-color
:
#f8f8f8
;
border
:
1px
solid
#ccc
;
font-size
:
13px
;
line-height
:
19px
;
overflow
:
auto
;
padding
:
6px
10px
;
border-radius
:
3px
;
}
pre
code
,
pre
tt
{
background-color
:
transparent
;
border
:
none
;
}
kbd
{
-moz-border-bottom-colors
:
none
;
-moz-border-left-colors
:
none
;
-moz-border-right-colors
:
none
;
-moz-border-top-colors
:
none
;
background-color
:
#DDDDDD
;
background-image
:
linear-gradient
(
#F1F1F1
,
#DDDDDD
);
background-repeat
:
repeat-x
;
border-color
:
#DDDDDD
#CCCCCC
#CCCCCC
#DDDDDD
;
border-image
:
none
;
border-radius
:
2px
2px
2px
2px
;
border-style
:
solid
;
border-width
:
1px
;
font-family
:
"Helvetica Neue"
,
Helvetica
,
Arial
,
sans-serif
;
line-height
:
10px
;
padding
:
1px
4px
;
}
/* QUOTES
=============================================================================*/
blockquote
{
border-left
:
4px
solid
#DDD
;
padding
:
0
15px
;
color
:
#777
;
}
blockquote
>
:first-child
{
margin-top
:
0px
;
}
blockquote
>
:last-child
{
margin-bottom
:
0px
;
}
/* HORIZONTAL RULES
=============================================================================*/
hr
{
clear
:
both
;
margin
:
15px
0
;
height
:
0px
;
overflow
:
hidden
;
border
:
none
;
background
:
transparent
;
border-bottom
:
4px
solid
#ddd
;
padding
:
0
;
}
/* TABLES
=============================================================================*/
table
th
{
font-weight
:
bold
;
}
table
th
,
table
td
{
border
:
1px
solid
#ccc
;
padding
:
6px
13px
;
}
table
tr
{
border-top
:
1px
solid
#ccc
;
background-color
:
#fff
;
}
table
tr
:nth-child
(
2
n
)
{
background-color
:
#f8f8f8
;
}
/* IMAGES
=============================================================================*/
img
{
max-width
:
100%
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录