So let's start!
First of all please have a look at the edit I made to your original question. It was not just an edit but implied important conceptual thing so I need to start with them:
- Graphs: Graph is a reserved term in mathematics for network-like objects. You better use the term Plot for sake of clarification. So the question is absolutely not about graphs.
- Time-series data: The example you made i.e. a temporal sequence of data points is called Time-series. A n-dimensional data is not necessarily a time-series and however both seem to inhibit the same structure, they are conceptually different (but not necessarily irrelevant) types of data and different sets of algorithms and problems are defined for either, so please comment here if the data is time-series or not.
- Curve Plots: The last but not the least is that a plot is used to just illustrate the data and all Data Analysis algorithms and approaches use that data for inference. So you never infer anything from the plot itself but from the data that it depicts. If you have any plot-like data which you don't know the data behind you need to use Image Processing which I'm pretty sure is not the topic of this question but wanted to mention as you explicitly asked how to do the analysis with plots themselves.
After these points I get back to your question. Yes, what you are looking for is Pattern Recognition and you can use many Machine Learning approaches to solve your problem. If you already knew what are different classes of patterns, it would be called Classification but now, as I understood, you don't know the classes and you want to find similar patterns. Finding patterns of similarity in data is called Clustering.
As I don't know if your data is a time-series (e.g. amount of raining vs time) or just a structured n-dimensional data (e.g. amount of raining vs humidity) I try both.
When you have different segments of time-series and you need their similarity you can use Correlation Analysis or Dynamic Time Warping. If the time series is high frequency e.g. speech data or EEG, then you better convert data to frequency (or time-frequency) domain and then extract features from those segment and then use those features to determine similarity. Please note that the term similarity is pretty wide and it's defined according to the nature of data and problem. You may search for time-series clustering for more approaches.
Similarity between the parameters of a regression model fitted to those subsets of data might help. Another approach is to apply clustering algorithms to those segments. These algorithms can be applied to the original data subsets or some features extracted from those. Dimensionality Reduction algorithms like PCA can be used for feature extraction and might be helpful for a better clustering.
I wrote my answer in rush so I would appreciate any comment or further questions.