Python 提供了各种各样的工具和库,可以在程序执行中创建可视化图形,以下是一些 Python 画图技巧:
### 图形清晰度与保存设置
- **调整图片清晰度**:可以通过设置 `dpi`(每英寸点数)来调整图片的清晰度,`dpi` 值越高,图片越清晰。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.savefig('plot.png', dpi=300)
```
- **图片保存格式设置**:`savefig` 函数可以指定保存的文件格式,如 `png`、`jpg`、`svg` 等。
```python
plt.savefig('plot.svg')
```
### 字体与符号设置
- **支持中文字体设置**:在使用中文标题或标签时,需要设置支持中文的字体。
```python
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'
plt.plot([1, 2, 3], [4, 5, 6])
plt.title('中文标题')
plt.show()
```
- **特殊符号的 LaTeX 语法支持**:Matplotlib 支持 LaTeX 语法来显示特殊符号。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title(r'$\sin(x)$ 曲线')
plt.show()
```
### 颜色设置
- **使用颜色名称指定颜色**:可以使用英文颜色名称来指定绘图对象的颜色。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y, color='red')
plt.show()
```
- **使用十六进制 RGB 值指定颜色**:通过十六进制 RGB 值来精确指定颜色。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y, color='#FF0000')
plt.show()
```
- **渐变色设置**:可以使用 `matplotlib` 的 `LinearSegmentedColormap` 来创建渐变色。
```python
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
# 创建渐变色映射
colors = [(1, 0, 0), (0, 1, 0), (0, 0, 1)]
cmap_name = 'my_list'
cm = LinearSegmentedColormap.from_list(cmap_name, colors, N=100)
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.scatter(x, y, c=y, cmap=cm)
plt.colorbar()
plt.show()
```
### 图形元素调整
- **调整标题位置和角度**:可以使用 `loc` 参数调整标题的位置,使用 `rotation` 参数调整标题的角度。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title('标题', loc='left', rotation=45)
plt.show()
```
- **图框的调整**:可以调整图框的线条宽度、颜色等属性。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
ax = plt.gca()
for spine in ax.spines.values():
spine.set_linewidth(2)
spine.set_color('red')
plt.show()
```
- **图框背景颜色设置**:可以设置图框的背景颜色。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
ax = plt.gca()
ax.set_facecolor('lightgray')
plt.show()
```
- **透明度设置**:可以通过 `alpha` 参数设置绘图对象的透明度。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y, alpha=0.5)
plt.show()
```
### 不同图形绘制
- **绘制折线图**:使用 `plot` 函数绘制折线图。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
```
- **绘制面积图**:使用 `fill_between` 函数绘制面积图。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.fill_between(x, y)
plt.show()
```
- **绘制饼图**:使用 `pie` 函数绘制饼图。
```python
import matplotlib.pyplot as plt
sizes = [15, 30, 45, 10]
labels = ['A', 'B', 'C', 'D']
plt.pie(sizes, labels=labels)
plt.show()
```
- **绘制气泡图**:使用 `scatter` 函数绘制气泡图,通过 `s` 参数指定气泡的大小。
```python
import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(50)
y = np.random.rand(50)
sizes = 1000 * np.random.rand(50)
plt.scatter(x, y, s=sizes)
plt.show()
```