首页 > 解决方案 > 更改标记大小时标记样式发生变化

问题描述

我正在使用 matplotlib 3.3.2 来绘制一些数据点。我想用两种不同的标记样式绘制两种不同的数据——一种是“o”,一种是“x”。我还想让点的大小变小,大约为 0.4-.5 的标记大小。但是,当我为小于约 1.2 的标记大小绘制数据时,x 标记变成看起来很像 o 标记的点(但略呈菱形)。我尝试在几个不同的地方将标记样式设置为该数据的“x”,但我尝试过的任何方法都没有奏效。如何绘制具有不同标记样式的小点。

下面是一个产生意外行为的代码示例:

import matplotlib
matplotlib.use('agg')
from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
from matplotlib.legend_handler import HandlerTuple

%matplotlib inline

matplotlib.rcParams['text.usetex'] = True
matplotlib.rcParams['font.size'] = 8
matplotlib.rcParams['savefig.dpi'] = 600
matplotlib.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
matplotlib.rcParams['legend.fontsize'] = 8

x_data = 100 * np.random.rand(100)
o_data = 100 * np.random.rand(100)

xs = np.linspace(0, 100, num = len(x_data))

x_marker, x_size, x_lw = 'x', .5, 1
o_marker, o_size, o_lw = 'o', .5, 1

plt.figure(figsize = (10,10))

plt.loglog(xs, x_data, marker=x_marker, markersize=x_size, linewidth = x_lw, linestyle = 'None')
plt.loglog(xs, o_data, marker=o_marker, markersize=o_size, linewidth = o_lw, linestyle = 'None')

plt.show()

标签: pythonmatplotlibplot

解决方案


推荐阅读