我有以下代码,以生成散点图
import matplotlib.pyplot as plt
line = plt.figure()
plt.plot(xvalue, yvalue)
plt.grid(True)
plt.savefig("test.png")
plt.show()
Run Code Online (Sandbox Code Playgroud)
我只是想知道我是否可以将x轴标签更改为字符串.我已经存储了所有标签
xlabel = ['2015/4/1', '2015/4/11', '2015/4/12', '2015/4/18', '2015/4/19'...]
Run Code Online (Sandbox Code Playgroud)
是否有matplotlib的任何功能,以便我可以将x轴标签设置为"xlabel"中的值?
很多!
另外我的标签是重叠的,我能做些什么来解决这个问题?谢谢!
我正在使用plotly(以便在悬停时能够获取点信息)来可视化我的聚集散点图。我在为使用KMeans生成的群集分配不同的颜色时遇到麻烦。当在matplotlib.pyplot中绘制此图形时(如plt),我使用以下代码:
plt.scatter(restult[:,0], result[:,1], c=cluster_labels
Run Code Online (Sandbox Code Playgroud)
cluster_labels为:
n_clusters = 3
km = KMeans(n_clusters).fit(result)
labels = km.labels_
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是我需要鼠标悬停的信息。
这是我到目前为止所处的情节:
trace = go.Scatter(
x = result[:,0],
y = result[:,1],
mode = 'markers',
text = index, # I want to see the index of each point
)
data = [trace]
# Plot and embed in ipython notebook!
py.iplot(data, filename='basic-scatter')
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助!
我有以下数据:
我绘制了该数据的点,然后使用以下代码在图上对其进行平滑处理:
scatter.smooth(x=1:length(Ticker$ROIC[!is.na(Ticker$ROIC)]),
y=Ticker$ROIC[!is.na(Ticker$ROIC)],col = "#AAAAAA",
ylab = "ROIC Values", xlab = "Quarters since Feb 29th 2012 till Dec 31st 2016")
Run Code Online (Sandbox Code Playgroud)
现在我想找到这条平滑曲线的逐点斜率。还将趋势线拟合到平滑图上。我怎样才能做到这一点?
我对ggplot2包和渐变填充有一些困难.对于数据点数较少的数据,其梯度和密度强度并不匹配.这是一个例子:
我使用的代码是:
pt <- read.xlsx("plots.xlsx", sheetName = "PT1_TB varseq", stringsAsFactors=FALSE)
ggplot(pt, aes(x=pt$BAF, y=pt$LogR) ) +
stat_density_2d(aes(fill = ..density..), geom = "raster", contour = FALSE) +
scale_fill_distiller(palette= "Spectral", direction=-1) +
scale_y_continuous(name="LogR", limits = c(-0.8, 0.6), breaks = seq(-0.8, 0.6, 0.2)) +
scale_x_continuous(name="BAF", breaks = seq(0, 0.8, 0.2)) +
theme(
legend.position='none',
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.background = element_blank(),
axis.line = element_line(colour = "black")
) +
geom_point(aes(shape = factor("cyl")), size = 1) + scale_shape(solid = FALSE)
Run Code Online (Sandbox Code Playgroud)
我希望渐变更突然地改变,例如,我希望在(0; 0.2)和(0.25; -0.2)之间的点之间看到更多的颜色分离.此外,没有点的中间的黄色应该是蓝色.
当我在它的时候,是否有人知道如何消除轴和实际情节之间的白色间隙?
提前致谢 …
我正在绘制月份与温度(y 轴)的数据集,我使用:
plt.scatter(time, temps)
plt.show()
Run Code Online (Sandbox Code Playgroud)
但在图中,y 轴不一致(点 8 的值为 19.5749,但显示的值高于前一点的 22.482)

我通常tikz-pgfplot通过gnuplot-lua界面来绘制研究论文的科学数据.它通常非常好,我可以将我的数字无缝地整合到latex文档中.由此产生的数字是非常高的分辨率和精细的.然而,绊脚石是大数据集的高分辨率散点图 - 调整100,000点.
如果我按照我的惯常tikz-pgfplot路线latex生成文件,但在编译时pdflatex,会得到tex memory exceeded...错误.我也知道增加tex记忆并不是一个好主意.所以,我最终生成了一个eps(封装的postscript)图,然后我将其包含在我的latex文档中tikz-pgfplot以呈现注释.它通常可以工作,但会产生一个非常大的PDF文件,2 MB以便为一个小图而且PDF读者需要很长时间才能完全显示图形.
我想知道,是否还有其他方法可以生成大型数据集的高分辨率散点图?任何指针都将受到高度赞赏.
Madhur
我有一个散点图,上面有几个点,我可以很容易地绘制出来。我想在每个点周围添加一个圆环图,以指示构成该点的类。我看到了嵌套甜甜圈图的示例,但我想为多个点制作散点图/甜甜圈图。
这是我迄今为止制作散点图和圆环图的代码。它将为第一个点绘制所有 3 个数据点和一个圆环图。
import numpy as np
import matplotlib.pyplot as plt
# Fixing random state for reproducibility
np.random.seed(19680801)
## Scatter
# create three data points with three random class makeups
N = 3
N_class = 5
x = np.random.rand(N)
y = np.random.rand(N)
vals = [np.random.randint(2, size=N_class) for _ in range(N)]
plt.scatter(x, y, s=500)
plt.show()
## Donut plot
# Create 5 equal sized wedges
size_of_groups = np.ones(5)
# Create a pieplot
plt.pie(size_of_groups, colors=["grey" if val == 0 else …Run Code Online (Sandbox Code Playgroud) 我使用 Python 和 Bokeh 在同一个图表中生成了两个散点图,并添加了复选框以允许单独查看散点图。
如何使用 Bokeh 为两个散点图(带方程)添加回归线?
output_file("Scatterplot.html")
#scatter plot
S0 = f.circle(A_area, A_price,
fill_alpha=0.3, size=3, color='green')
S1 = f.circle(B_area, B_price,
fill_alpha=0.3, size=3, color='blue')
#widget-checkbox
checkboxes = CheckboxGroup(labels=["A", "B"], active=[0, 1])
callback = CustomJS(code="""S0.visible = false; // same S0 passed in from args
S1.visible = false;
// cb_obj injected in by the callback
if (cb_obj.active.includes(0)){S0.visible = true;} // 0 index box is S0
if (cb_obj.active.includes(1)){S1.visible = true;}""",
args={'S0': S0, 'S1': S1})
checkboxes.js_on_click(callback)
Run Code Online (Sandbox Code Playgroud) 我在 Google Earth Engine 中有 2 张高分辨率图像。我想在这两个图像之间绘制散点图。但我遇到了一些错误Missing required arguments to function seriesByRegion(): reducer。我不知道如何纠正这个(或者这是否是由于图像造成的)。
首先,我导入了几何图形和我的图像:
var RZSC = ee.Image("users/chandrakant/Max_RZSC_Layer_Trail_3"),
geometry = /* color: #d6cbbb */ee.Geometry.Polygon(
[[[-81.375, -56.125],
[-34.625, -56.125],
[-34.625, 12.625],
[-81.375, 12.625]]]);
Run Code Online (Sandbox Code Playgroud)
然后我将图像可视化
var vizParams = {
bands: ['b1'],
min: 0.0,
max: 1500.0,
palette: ['blue', 'green', 'red']
};
Map.setCenter(6.746, 46.529, 10);
Map.addLayer(RZSC.clip(geometry), vizParams, 'Rootzone Storage Capacity');
Map.centerObject(RZSC);
print('RZSC Projection, crs, and crs_transform:', RZSC.projection());
Run Code Online (Sandbox Code Playgroud)
可视化我的 MODIS 图像
var MODIStc = ee.ImageCollection('MODIS/051/MOD44B')
.filter(ee.Filter.date('2000-01-01', '2017-12-01')).mean();
var percentTreeCover = MODIStc.select('Percent_Tree_Cover');
var percentTreeCoverVis …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用手动限制设置来协调 Matplotlib 散点图中的点注释,但是我收到一条错误消息,或者我遇到了设计问题。
这是我的代码:
fig, ax = plt.subplots(figsize = (20,10)) #manual limit setting
plt.axis([-2,3,-2.5,5])
plt.scatter(x, y)
for i, txt in enumerate(n): #dot annotation
ax.annotate(txt, (x[i], y[i]))
Run Code Online (Sandbox Code Playgroud)
这是输出的屏幕截图(我得到的最终散点图是一个位于大白色矩形左角的小矩形:
我也试过这个:
fig, ax = plt.subplots(figsize = (20,10))
ax = plt.axis([-2,3,-2.5,5])
plt.scatter(x, y)
for i, txt in enumerate(n):
ax.annotate(txt, (x[i], y[i]))
Run Code Online (Sandbox Code Playgroud)
但是当然我收到了以下错误消息(即使图表正确显示,但每个对应点旁边没有标签)。
AttributeError: 'list' object has no attribute 'annotate'
Run Code Online (Sandbox Code Playgroud)
出现错误是因为我的循环试图遍历ax = plt.axis([-2,3,-2.5,5]),这确实没有意义。
有什么解决方案可以克服这个问题?
谢谢
scatter-plot ×10
python ×5
matplotlib ×4
r ×2
bokeh ×1
density-plot ×1
donut-chart ×1
ggplot2 ×1
gnuplot ×1
lm ×1
pdflatex ×1
plotly ×1
python-2.7 ×1
python-3.x ×1
regression ×1
smoothing ×1
tikz ×1
trendline ×1