在散点图的pyplot文档中:
matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, norm=None,
vmin=None, vmax=None, alpha=None, linewidths=None,
faceted=True, verts=None, hold=None, **kwargs)
Run Code Online (Sandbox Code Playgroud)
标记大小
s:以磅为单位的大小^ 2.它是一个标量或与x和y长度相同的数组.
什么样的单位points^2?这是什么意思?是否s=100意味10 pixel x 10 pixel?
基本上我正在尝试制作具有不同标记大小的散点图,我想弄清楚这个s数字是什么意思.
我正在尝试使用Pandas DataFrame对象在pyplot中创建一个简单的散点图,但是想要一种有效的方法来绘制两个变量,但是具有由第三列(键)指示的符号.我尝试过使用df.groupby的各种方法,但没有成功.下面是一个示例df脚本.这会根据'key1'为标记着色,但Id喜欢看到带有'key1'类别的图例.我接近了吗?谢谢.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(np.random.normal(10,1,30).reshape(10,3), index = pd.date_range('2010-01-01', freq = 'M', periods = 10), columns = ('one', 'two', 'three'))
df['key1'] = (4,4,4,6,6,6,8,8,8,8)
fig1 = plt.figure(1)
ax1 = fig1.add_subplot(111)
ax1.scatter(df['one'], df['two'], marker = 'o', c = df['key1'], alpha = 0.8)
plt.show()
Run Code Online (Sandbox Code Playgroud) 我试图改变seaborn中的lmplot标记的大小.我试过传递's'或'size'作为参数,但它们都不起作用.
lm = sns.lmplot(x="totalX",y="NormI", hue="Data Type", data=df, palette="Set1", legend_out=False, S=20)
Run Code Online (Sandbox Code Playgroud)
我试过"s","markersize","size"我没有效果.我想在图上使数据点更大.任何帮助深表感谢.
我正在尝试为每个点做一个速度超过米的散点图,其中标记表示不同的类型,大小表示不同的重量,颜色表示一个点超过10分钟的比例.但是,到目前为止我只能按尺寸绘制.
任何帮助都非常感谢.
x = {'speed': [10, 15, 20, 18, 19], 'meters' : [122, 150, 190, 230, 300], 'type': ['phone', 'phone', 'gps', 'gps', 'car'], 'weight': [0.2, 0.3, 0.1, 0.85, 0.0], 'old': [1, 2, 4, 5, 8]}
m = pd.DataFrame(x)
plt.scatter(m.meters, m.speed, s = 30* m.weight)
mkr_dict = {'gps': 'x', 'phone': '+', 'car': 'o'}
meters speed type weight old
0 122 10 phone 0.20 1
1 150 15 phone 0.30 2
2 190 20 gps 0.10 4
3 230 18 gps 0.85 …Run Code Online (Sandbox Code Playgroud) 我想在seaborn/matplotlib中制作一个散点图,其中点的大小由数据帧中的(连续)值确定,点的颜色也由数据帧中另一列的连续值确定.在ggplot中,这样做的方法是:
ggplot(iris) + geom_point(aes(x=Sepal.Width, y=Sepal.Length, size=Petal.Width, color=Petal.Length))
Run Code Online (Sandbox Code Playgroud)
seaborn/matplotlib中的语法是什么?
我正在使用seaborn pairplot绘制我的数据点的不同维度的散点图.但是,我希望数据点的标记具有与数据点的一个维度相对应的大小.我有以下代码:
markersize = 1000* my_dataframe['dim_size'] / sum(my_dataframe['dim_size'])
sns.set_context("notebook", font_scale=1.5, rc={'figure.figsize': [11, 8]})
sns.set_style("darkgrid", {"axes.facecolor": ".9"})
kws = dict(s=markersize, linewidth=.5, edgecolor="w")
sbax = sns.pairplot(my_dataframe, hue='dim_hue' x_vars=['dim_1', 'dim_2'], y_vars=['dim_3', 'dim_4'], size=5, plot_kws=kws)
axes = sbax.axes
for a in axes.flatten():
a.set_ylim([0,1])
a.set_xlim([0,1])
Run Code Online (Sandbox Code Playgroud)
如果我这样做print(kws),我在字典中看到尺寸都是不同的,从40到2000不等.但是,图上的标记都是一样的.有没有办法实现我想要的?
顺便说一句,lmplot如果我设置参数,这非常有效scatter_kws={"s": markersize}.
谢谢!